vc++初学者的一个链表问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:48:48
单链表中插入
在链表中插入一个新节点newNode书上说的是首先让一个检测指针指向current指向链表中Ai所在的结点,再将新结点插入到Ai所在结点之后算法如下
newNode->link=current->link;
current->link=newNode;
这两句话到底是什么意思啊
newNode->link指的是newNode的link还是newNode所指向的link
那为大哥帮帮忙 用个通俗的话解释下
谢谢了 头都搞昏了

newNode->link指的是newNode的link
第一句执行完后 newNode的link就指向current的link指向的东西
第二句执行完后 current的link就指向newNode了

结果是这样的:
第一句:current---C
newNode---C
第二句:current---newNode
于是结果为:current---newNode---C,newNode在current和C的中间,实现了插入。

//将链表中当前结点(A所在结点)后面的部分接到新结点的后面

插入前 A前一个结点-> A 结点 ->A后一个结点, current 指向A结点

newNode->link=current->link;//执行后如下
插入第一步 A前一个结点-> A 结点-> A后一个结点, current 指向A结点
新结点-> A后一个结点, current 指向A结点

current->link=newNode;//给A结点的link重新赋值,执行后如下
插入第二步 A前一个结点-> A 结点-> 新结点-> A后一个结点

newNode->link指的是“newNode所指向的link ”。
第一句的意思是让current的后续结点成为newNode的后续结点。
第二句的意思是让current的后续结点成为newNode。

X-->current-->next-->...

当执行完第一句后:current和newNode都指向next
X-->current-->next-->...
newNode-------^

当执行完第二句后:current指向newNode
X-->current-->newNode-->next--