| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1483 人关注过本帖
标题:[求助]建单链表的问题
只看楼主 加入收藏
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
 问题点数:0 回复次数:12 
[求助]建单链表的问题
LinkList Creat_LinkList()
{
LinkList H=(LinkList)malloc(sizeof(LNode));
H->next=NULL;
LNode *s,*r=H;
int x;
scanf("%d",&x);
while(x!=-1)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
s->next=r->next; r->next=s; r=s; ------------(1)
scanf("%d",&x);
}
return H; --------------------(2)
}


不太理解标记的这两句,向高手请教下!

*r=H;中的H指的是H指针吗
搜索更多相关主题的帖子: 单链 LinkList next LNode 
2007-03-07 20:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
s->next=r->next; r->next=s; r=s; ------------(1)
将一结点插入到链表尾部,这里的当前尾部结点是S,被插入结点是R.画两个结点做示意图,看看哪个链结要先断,哪个链结要先连.

因为你要访问这个链表,所以要返回链表头结点的地址.


*r=H;中的H指的是H指针吗? H本身就是个指针.

倚天照海花无数,流水高山心自知。
2007-03-08 13:15
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 

s->next=r->next; r->next是指向哪里的,是不是根据*r=H判断的

*r=H 说明指针r指向头结点H,为什么s->next=r->next 的含义是将结点s插入到链表尾部?

r->next=s; 这句是让指针r指向结点s ,对吗?


r=s; 还是不很理解? 这里的r只是个指针 并非结点吧?

还有个问题区别:p->next=p与p=p->next有含义上的区别

[此贴子已经被作者于2007-3-8 21:49:16编辑过]

2007-03-08 21:40
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

r=s; 还是不很理解? 这里的r只是个指针 并非结点吧?
1.结点是什么?
r=s是指当前尾结点下移,因为插入的结点S成为当前的尾结点.

还有个问题区别:p->next=p与p=p->next有含义上的区别
p->next=p,严格来说这个语句没什么意义,而且还可能导致错误.


倚天照海花无数,流水高山心自知。
2007-03-08 22:07
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
s->next=r->next; r->next是指向哪里的,是不是根据*r=H判断的

*r=H 说明指针r指向头结点H,为什么s->next=r->next 的含义是将结点s插入到链表尾部?

r->next=s; 这句是让指针r指向结点s ,对吗? p=p->next什么含义?
2007-03-08 23:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用lhj2005在2007-3-8 23:39:56的发言:
s->next=r->next; r->next是指向哪里的,是不是根据*r=H判断的

*r=H 说明指针r指向头结点H,为什么s->next=r->next 的含义是将结点s插入到链表尾部?
仅这一个语句还不能说明它是将S插入尾部,只是要想将该结点插入,首先要保证每一步操作不会使其它指针丢失.
因为R,S的指针域都为空,所以不用担心这一点,可以直接写r->next=s;r=s;但如果R后还有结点,此时就必须保留r->next了.那s->next=r->next;很显然这个操作使得r->next被保存在s-next中.

r->next=s; 这句是让指针r指向结点s ,对吗? p=p->next什么含义?
弄清楚结点和结点的指针域两者的区别.r的指针域指向S.
你始终要操作的对象是p,要访问下一个结点,必须是指针下移,对应的操作不就是p=p->next;

不知道我说清楚没有,LZ再仔细想一下,最好画个示意图.


倚天照海花无数,流水高山心自知。
2007-03-09 10:46
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
r->next=s
r结点的指针域 指向s结点

r=s
r是指针,而s是结点,如何理解r=s


2007-03-09 13:55
bingkao214
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-3-10
收藏
得分:0 
这个问题我也糊涂和很久?  我也想问一下 关于结点:如何理解结点是把他当作有两个域(一个数据;一个指针)犹如外观为一个的盒子而里面有两个空间??
2007-03-21 20:10
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
呵呵
理解万岁
不过你可以这么看

节点的指针只能指地址
s->next=r->next;
所以能看出来S。NEXT保存的是R。NEXT的地址
也就是R下一个接点
r->next=s;
NEXT指S的地址
这样就不会混了

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-03-21 22:14
没事跳楼耍
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-3-19
收藏
得分:0 

自己画个图吧,要好理解一点!

2007-03-22 18:20
快速回复:[求助]建单链表的问题
数据加载中...
 
   



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

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