单选题
在非空双循环链表中q所指的结点前插入一个由p所指结点的过程依次为:p->next=q;p->prior=q->prior;q->prior=p; 下一条语句是______。
A.q->next=p B.q->prior->next=p
C.p->prior->next=p D.p->next->prior=p
【正确答案】
C
【答案解析】[解析] 本题主要考查双向链表的插入时指针的变化。由于两个方向共需要修改4个指针,指针操作的顺序不是唯一的,但也不是任意的。只要把每条指针操作的涵义搞清楚,就不难理解了。设q指向双向链表中某结点,p指向待插入的新结点,将*p插入*q的前面具体操作如下:
(1)p->next=q;(2)q->prior=p;(3)p->prior=q->prior;(4)p->prior->next=p。