首页 > 试题广场 >

在循环双链表的 p 所指的结点之前插入 s 所指结点的操作是

[单选题]
在循环双链表的 p 所指的结点之前插入 s 所指结点的操作是
  • p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
  • p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
  • s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
  • s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
C 为啥不对?
发表于 2019-11-11 22:06:09 回复(1)
先插入,后断链,C选项的问题在于p-> prior=s后再进行p->prior->next=s相当于s->next=s
发表于 2020-06-02 23:10:44 回复(0)
发表于 2019-05-24 16:58:21 回复(0)
发表于 2018-12-23 14:40:19 回复(1)
<p>永远记住先搭后拆</p>
发表于 2020-04-22 15:42:04 回复(3)
注意插入结点,在插入的结点的前后,都需要建立双向的指针关系
编辑于 2018-08-05 21:28:37 回复(0)
前后前后
发表于 2018-04-24 00:28:24 回复(0)
节点之前
发表于 2023-07-13 17:14:00 回复(0)
A,B错误比较明显,在图上一画会发现S的后继指向了自己,C的错误在于先执行p的前继=S,那么最后一步应该是p的前继(S)的前继的后继指向S
D是正确的,按顺序画图也可正确画出插入过程
错误的原因根本在于指针指向错误,而不是顺序问题,换一个写法即使不同顺序也可以正确插入,只根据顺序判断是否正确插入有失偏颇
发表于 2020-11-09 20:52:19 回复(0)
需要知道的是,如果错误插入会导致数据的丢失
发表于 2022-04-24 15:10:07 回复(0)
先搭后拆先搭后拆
发表于 2023-08-02 19:31:38 回复(0)
没那么麻烦,随便连但只要记住别断链就行,连的方法有有限多种
A选项从第三个链开始错,因为第一条语句时前驱已经断了,第三条丢了执行不了
B同理第二条链就错了,前驱已经和s连上了,p->prior->next=?反正不等于s应该是p之前的前驱结点
C错误点与AB一样不过是在第四天链错的,前三条链都对,但第三条链提前将p的前驱断掉了,所以第四条链p->prior->next = s失效不能执行
D选项正确,确保了链没有断掉
还可以这样写:p->prior->next=s;s->next=p;s->prior=p->prior;p->prior=s
发表于 2022-09-12 16:16:30 回复(0)