首页 > 代码库 > (源代码见大话数据结构)线性表—链式存储结构->单链表的删除ListDelet(*L,i,*e)

(源代码见大话数据结构)线性表—链式存储结构->单链表的删除ListDelet(*L,i,*e)

Status ListDelet(LinkList *L,int i,ElemType *e)
{
    int j=1;
    LinkList p,s;
    p=*L;
    while(p&&j<i)
    {
        p=p->next;
        j++;
    }
    if(!p||j>i)
        return ERROR;
    s=p->next;
    *e=s->data;
    p->next=s->next;
    free(s);
    return OK;
}

个人理解:建立一个新结点可以作为(i-1)个结点的后继结点指向(i+1)个结点的过渡,然后直接释放第i个节点的内存。

(源代码见大话数据结构)线性表—链式存储结构->单链表的删除ListDelet(*L,i,*e)