| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1487 人关注过本帖
标题:[求助]建单链表的问题
只看楼主 加入收藏
cinsin
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-6-25
收藏
得分:0 

[QUOTE]r->next=s
r结点的指针域 指向s结点

r=s
r是指针,而s是结点,如何理解r=s
[/QUOTE]
r->next=s中r和s指向两个结点。s是r的后继。
r=s可以简单的理解为r不再指向它原来的结点,和s一起指向s所指的结点。不用再去关心原来r所指点结点现在的状况,或许有其他的指针来指向它,或许还被释放了。。。


曾几何时,我也是菜鸟...
2007-06-25 07:55
风动
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2007-6-25
收藏
得分:0 

这个问题我初学时也不理解,哈哈 ! s->next=r->next; r->next=s; r=s; ------------(1)
是一个指针插入语句,具体来说应该是倒插法建链表。
s是一个节点,它指向一个数据区,那个数据区有包括data域和next域。从链表结构定义可见next是由本身指针定义的,是一个嵌套。
而指针是存地址的。由此可见先让s->next里面存r->next是一个为下次再存下个节点打基础的一步,而r->next=s;是把新分配的结点
s连接到r的后面,而r=s;则是为以后再用变量r方便做准备。
return H; --------------------(2)
是返回构造好的链表。


你还可以用这样的方式:
void Creat_LinkList(LinkList &H)
{
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);
}
}





打框架,做需求分析---敲代码的前提
2007-06-25 12:15
滨海
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-6-3
收藏
得分:0 
s->next=r->next; r->next=s; r=s;
将s结点插到r结点和r->next结点之间,让后再将r指针指向s结点;

让暴风雨来的更猛烈些吧!!
2007-06-25 13:47
快速回复:[求助]建单链表的问题
数据加载中...
 
   



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

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