标题:谁能帮我看看实现这个程序的功能?
只看楼主
jackeyhlj
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:51
专家分:0
注 册:2007-3-27
 问题点数:0 回复次数:6 
谁能帮我看看实现这个程序的功能?

谁能帮我看看这个程序,它是要实现在值为x的结点之前插入值为y的结点,此单链表如有重复的x,所有x的前面插入值为y的结点。

void insert(node *h,int x,int y){
s=(struct node*)malloc(sizeof(struct node));
s->data=y;
p=h->next;
for(q=h;p!=NULL;p=p->next)
{
if(p->data==x)
{
q->next=s;
s->next=p;
}
else q=p;
}
}
2007-04-06 23:09
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
得分:0 
以下是引用jackeyhlj在2007-4-6 23:09:26的发言:

谁能帮我看看这个程序,它是要实现在值为x的结点之前插入值为y的结点,此单链表如有重复的x,所有x的前面插入值为y的结点。

void insert(node *h,int x,int y){
s=(struct node*)malloc(sizeof(struct node));
s->data=y;
p=h->next;
for(q=h;p!=NULL;p=q->next)
{
if(p->data==x)
{
q->next=s;
s->next=p;
}
else q=p;
}
}

个人认为应该这样~``
对不?


 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-08 20:17
jackeyhlj
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:51
专家分:0
注 册:2007-3-27
得分:0 

怎么不能输出结果啊?


2007-04-09 09:20
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
void insert(node *h,int x,int y){
node *s=(struct node*)malloc(sizeof(struct node));
s->data=y;
p=h->next;
for(q=h;p!=NULL;p=p->next)
{
if(p->data==x)
{
q->next=s;
s->next=p;
}
q=p;//不管是否匹配都得往下移.
}
}
//其实这样写还是有BUG,当链表中不存在X时,按道理Y应该插在最后,而按照你的程序是不能插入的.所以建议把插入操作放在循环后,而找到X时用break;退出.

倚天照海花无数,流水高山心自知。
2007-04-09 23:45
liuminghui
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:2882
专家分:0
注 册:2007-1-26
得分:0 
以下是引用nuciewth在2007-4-9 23:45:30的发言:
void insert(node *h,int x,int y){
node *s=(struct node*)malloc(sizeof(struct node));
s->data=y;
p=h->next;
for(q=h;p!=NULL;p=p->next)
{
if(p->data==x)
{
q->next=s;
s->next=p;
}
q=p;//不管是否匹配都得往下移.
}
}
//其实这样写还是有BUG,当链表中不存在X时,按道理Y应该插在最后,而按照你的程序是不能插入的.所以建议把插入操作放在循环后,而找到X时用break;退出.

而找到X时用break;退出.???

那也只能找到一个X,后面的X就找不到了。所以即使找到也不能退出,而应该做个标志,继续找X.全部找好后再执行插入操作


海鸽 is My Lover!!
2007-04-10 09:33
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
此单链表如有重复的x,所有x的前面插入值为y的结点。

这句话不是说在第一个X前面插入Y吗?

倚天照海花无数,流水高山心自知。
2007-04-10 13:46
jackeyhlj
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:51
专家分:0
注 册:2007-3-27
得分:0 

在所有的前面都加


2007-04-10 15:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-129864-1-1.html




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

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