dusx1981 发表于 2007-8-23 14:34:10

有关链表

STUDENT * Delete_stu_list(STUDENT * head,char * sname)
{
STUDENT *q,* p;
p = head;
   
while(p->next)
{
q = p;
p = p->next;
   if(strcmp(p->name,sname) == 0)
{
   if(p == head)
    head = p->next;
   else
    q->next = p->next;
   free(p);
}
}

return head;
}

请帮我看看这段代码,我的理解是会漏掉第一个结点,事实也是这样,可是当后面的结点符合删除条件时,会抱发送错误报告的错误,就算是漏掉了第一个接点,也不应该抱这个错误啊

mozilla 发表于 2007-9-23 22:33:28

while(p->next)//p是有效的么?
free(p)//这把p释放了,while还能用p么
算法对不对就不知道了,没仔细看

hobby! 发表于 2007-11-29 16:23:45

建议楼主,先不要使用户代码书写,这样对你的逻辑会清晰一点的!
在这里提出!如何对X的次方种组合一一列出?
已经有答案!楼主想一下!
页: [1]
查看完整版本: 有关链表