题17

题目

在如下图所示的双链表中,已知指针 p 指向结点 A ,若要在结点 AC 之间插入 指针 q 所指的结点 B ,则依次执行的语句序列可以是 ( ).

q->next = p->next;
q->prior = p;
p->next = q;
p->next->prior = q;
A. 1243
B. 4321
C. 3412
D. 1342

分析

A
结点 分别由指针 pq 指示,但结点 仅能由 p->next 间接指示,因此在改变 p->nextp->next->prior 之前,必须先将 q->next 指向结点 C ,即①要在③和④前面,且④要在③ 前面 (因为若先执行③, 则④相当于 q->prior 指向其自身, 显然矛盾)。
故只能选 A。