带头结点单链表基本函数改写

作者在 2010-08-14 12:37:51 发布以下内容
呵呵,我把书上的全改成这样子,自己熟悉些。测试了边界值 没问题
int getlist(linklist la,int i)
{
    linklist p=la->next;int j=1;
    while (p->next!=0 && j<i)
    {
        p=p->next;
        j++;
    }
    if (p!=0 && j==i)
    {
        return p->data;
    }
    else
        return 0;
}
int insertlist(linklist la,int i,int e)
{
    linklist p=la;int j=0;
    while (p->next!=0 && j<i-1)
    {
        p=p->next;
        j++;
    }
    if (p!=0 && j==i-1)
    {
        linklist s=malloc(sizeof(lnode));
        s->next=p->next;
        p->next=s;
        s->data=e;
        return 1;
    }
    else
        return 0;
}
int deletelist(linklist la,int i)
{
    linklist p=la; int j=0;
    while (p->next!=0 && j<i-1)
    {
        p=p->next;
        j++;
    }
    if (p->next!=0 && j==i-1)
    {
        linklist q=p;
        p->next=p->next->next;
        free(q);
        return 1;
    }
    else
        return 0;
}
数据结构 | 阅读 963 次
文章评论,共0条
游客请输入验证码
浏览3670次
最新评论