| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:不知这算法有什么错误?
只看楼主 加入收藏
一刀客
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-10-26
收藏
 问题点数:0 回复次数:6 
不知这算法有什么错误?

删除 有序递增单链表 上相同的元素!
typedef struct node
{
datatype1 data;
struct node *next;
}linklist;
/*删除相同元素*/
int del(linklist *head)
{
linklist *p,*t;
p=head->data;
while(p->next!=null)
{
t=p->next;
if(t->data==p->data)
{
p->next=t->next->next;
free(t);
}
else
p=p->next;
}

}
编译没出错
但一运行就得提示说程序遇到问题要关闭!晕呀
不知这算法有什么逻辑错误。。
大家有什么意见?

搜索更多相关主题的帖子: 算法 
2007-10-31 22:36
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
收藏
得分:0 

int del(linklist *head)
{
linklist *p,*t;
p=head->data; //p=head->next;
while(p->next!=null)
{
t=p->next;
if(t->data==p->data)
{
p->next=t->next->next;
free(t);
}
else
p=p->next;
}

}

2007-10-31 23:28
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 
p=head->data你的这条语句就是错的。
p->next=t->next->next改为p->next=t->next,因为你的t=p->next.
你的指针多移了一步

个人意见,不代表官方看法
2007-11-01 10:29
一刀客
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-10-26
收藏
得分:0 
回复:(shlg1229)p=head->data你的这条语句就是错...

如你所说 问题就解决了 谢谢大家


责人之心责己 宽己之心宽人
2007-11-01 12:28
一刀客
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-10-26
收藏
得分:0 
还有 int del(linklist *head)
这个函数没有return也对?????

责人之心责己 宽己之心宽人
2007-11-01 12:51
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 

当然对;
不是说函数都要用return来返回值的。而且这个函数并没有返回值。


个人意见,不代表官方看法
2007-11-01 16:43
高温煎饺
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-11-2
收藏
得分:0 
int del(linklist *head) 这种写入的函数一般可以用bool返回,以便需要时用来检测.

follow your heart
2007-11-03 19:57
快速回复:不知这算法有什么错误?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028189 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved