qin787294810 发表于 2014-10-30 11:10:29

求指教 链表删除

Listdelete(Linklist *L,int i,Elemtype *e))
{
    Linklist p;
    int j;
    p = *L;
    while( p != NULL && j<i)
    {
      p = p->next;
      j++;
    }
    if(!p || j>i)
    {
      return ERROR;
    }
    *e = p->data;      //遍历到第i个结点将这个结点的值赋给e
    p->next = p;      //这样算不算将它的下一个结点代替了这个结点不算的话求给出为什么实在不是很明白求大神帮忙谢谢了
    free(p);
    return OK;
   
}

大个的糖果 发表于 2014-10-30 19:44:05

qin787294810 发表于 2014-10-30 19:46:19

大个的糖果 发表于 2014-10-30 19:44
ThanksFORshare

其实我是在提问

yjnyjn123456 发表于 2014-10-30 20:26:00

应该是让P指向i-1的位置,然后*e=p->next->date; p->next=p->next->next;
如果按你这样写会使得会使得i位置处出现断链。而且程序中如果遍历到达链尾要做特殊处理哟。。。{:1_1:}

qin787294810 发表于 2014-10-30 21:18:25

yjnyjn123456 发表于 2014-10-30 20:26
应该是让P指向i-1的位置,然后*e=p->next->date; p->next=p->next->next;
如果按你这样写会使得会使得i位 ...

终于看明白了谢谢了啊
页: [1]
查看完整版本: 求指教 链表删除