题35
题目
[!error]+
Q:【2023 统考真题】现有非空双向链表 prev | data | next ,prev 是指向直接前驱结点的指针,next 是指向直接后继结点的指针. 若要在
s->next = p->next;
p->next = s;后,下列语句序列中还需要执行的是 ( ).
A. s->next->prev=p; s->prev=p;
B. p->next->prev=s; s->prev=p;
C. s->prev=s->next->prev; s->next->prev=s;
D. p->next->prev=s->prev; s->next->prev=p;
分析
[!NOTE]+
A:需要注意的是,D选项里,执行完题目里的步骤以后,p去到后继的链接已经断掉了

解
[!done]+
题02
C
链表的插入操作要保证不会造成断链, 画图再依次判断选项。执行完语句
①s->next=p->next;
②p->next=s;后的结构如下图所示 (虚线表示 prev, 实线表示 next)。
对于 A,s->next->prev = p;,错误。
对于 B,p->next-prev=s,让
对于
对于
③s->prev=s->next->prev;
④s->next->prev=s;后的结构如下图所示, 满足插入的要求。
