尾插链表 请教

cprime 2008-07-15 04:28:17
[code=#include<iostream.h>

struct link

{ int data; //元素类型

link *next; //指针类型,存放下一个元素地址

};



link *rcreat( )//尾插法建立链表

{

link *s,*r,*p;

int i;

p=r=new link;

p->next=NULL;

cin>>i;

while(i)

{ s=new link;

s->data=i;

r->next=s;// 这里是把s的地址赋给r的next,请问下面的语句,把s的地址又赋给r

r=s;//这条语句为什么会是这样的呢,启到什么作用。

cin>>i;

}

r->next=NULL;

return p;

}C/C++][/code]
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cprime 2008-07-16
  • 打赏
  • 举报
回复
11楼说的对,他那样命名,把人头都搞大了。
iBug168 2008-07-15
  • 打赏
  • 举报
回复

while(i)

{ s=new link;

s->data=i;

r->next=s;
r=s; // 这句之后,然后r就又指向尾了,等你下次再插入的时候就不必从头开始遍历了.
//可能就是想太到这个效果吧.

cin>>i;

}

CW_Wei 2008-07-15
  • 打赏
  • 举报
回复
p---> 头结点
r---> 尾结点
s---> 新结点


如果命名的时候能用有意义的名字那就容易理解了
p---> head
r---> rear
s---> tmpNode
xkyx_cn 2008-07-15
  • 打赏
  • 举报
回复
呵呵,需要慢慢体会
jy01807853 2008-07-15
  • 打赏
  • 举报
回复
换汤不换药就是这个意思
cprime 2008-07-15
  • 打赏
  • 举报
回复
但不知我的理解正不正确。
cprime 2008-07-15
  • 打赏
  • 举报
回复
看了半天,终于看懂了,p就是head头指针,r就是中间控制指针,永远都指向新插入的节点,而s就是新建的
节点。
bargio_susie 2008-07-15
  • 打赏
  • 举报
回复
LZ拿个笔在纸上画下就明白了。大致是这样的吧。

首先申请个头结点p, 中间过度结点r指向头结点.
r--->NULL
|
p

新申请了个s,然后r的next指向它。
r-->s //r->next=s;
|
p
然后让r指向s.现在是这样了:
p->r //r = s后链表的情况

再重新申请s

然后r的next指向它。
p->r-->s //r->next=s;

// r = s后就是这样的了
p->结点-->r

。。。。。。。。
caimps 2008-07-15
  • 打赏
  • 举报
回复
没看出用处...
貌似是把尾暂时指向自身,循环结束后才置空
不知这样有什么好处
jy01807853 2008-07-15
  • 打赏
  • 举报
回复
r->next=s;// 这里是把s的地址赋给r的next,请问下面的语句,把s的地址又赋给r

r=s;//这条语句为什么会是这样的呢,启到什么作用
使结构体的指针指向S的地址这样才能形成连表
经过循环交替, 建立起连表
建议看下书上连表
lyle3 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xkyx_cn 的回复:]
r->next=s;// 这里是把s的地址赋给r的next,请问下面的语句,把s的地址又赋给r
每次都在尾部插入新节点
r=s;//这条语句为什么会是这样的呢,启到什么作用。
让尾指针始终指向最后插入的节点
[/Quote]
xkyx_cn 2008-07-15
  • 打赏
  • 举报
回复
r->next=s;// 这里是把s的地址赋给r的next,请问下面的语句,把s的地址又赋给r
每次都在尾部插入新节点
r=s;//这条语句为什么会是这样的呢,启到什么作用。
让尾指针始终指向最后插入的节点
jy01807853 2008-07-15
  • 打赏
  • 举报
回复
r->next=s;// 这里是把s的地址赋给r的next,请问下面的语句,把s的地址又赋给r

r=s;//这条语句为什么会是这样的呢,启到什么作用
使结构体的指针指向S的地址这样才能形成连表

65,207

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧