| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:谁能帮我看看实现这个程序的功能?
只看楼主 加入收藏
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
快速回复:谁能帮我看看实现这个程序的功能?
数据加载中...
 
   



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

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