C++中建立链表的一个疑惑

来源:百度知道 编辑:UC知道 时间:2024/06/16 01:34:37
我要用struct建立一个链表 结构中有个NEXT的指针 比如*PS是一个结点 *PEND是尾指针
为什么 PEND=PS PEND.NEXT=PS的赋值顺序是错误的 而 PEND.NEXT=PS
PEND=PS确是正确的?求大虾指导 我确实没分数了 不然给全部身家~~
如struct student{ int number;student *next;}; student*head=NULL; student* create(){ student *ps,*pend;.....中间省略。。。 进入判断循环体 pend->next=ps pend=ps ps=new student; cin>>........

上面问题中打错 应该是pend->next

PEND=PS PEND.NEXT=PS
和 PEND.NEXT=PSPEND=PS的区别你知道在哪里吗?
你现在在构造链表吧,你的思想步骤是
1.PS new一个空间
2.然后挂在PEND后面
3.再把PEND指向最后一个

但是你看看第一句话。你PEND先被你改变指向PS了,那后面调用的NEXT就是PS的NEXT,又指向了自己,这样你链表自然就成了所有元素自身指向自身。懂了吗?

你要做的是往链表最后面加东西, PEND=PS 这句什么意思? 尾指针指向这个东西, 然后呢, 链表的尾巴在哪, 尾指针都被覆盖了还怎么加东西