QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2171|回复: 2

有关链表

[复制链接]
发表于 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;
}

请帮我看看这段代码,我的理解是会漏掉第一个结点,事实也是这样,可是当后面的结点符合删除条件时,会抱发送错误报告的错误,就算是漏掉了第一个接点,也不应该抱这个错误啊
发表于 2007-9-23 22:33:28 | 显示全部楼层
while(p->next)//p是有效的么?
free(p)//这把p释放了,while还能用p么
算法对不对就不知道了,没仔细看
回复

使用道具 举报

发表于 2007-11-29 16:23:45 | 显示全部楼层
建议楼主,先不要使用户代码书写,这样对你的逻辑会清晰一点的!
在这里提出!如何对X的次方种组合一一列出?
已经有答案!楼主想一下!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-3-29 09:51 , Processed in 0.114457 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表