在非空双循环链表中q所指的结点前插入一个由p所指结点的过程依次为:p->next=q;P->prior=q->prior;q->prior=p;下一条语句是( )。

admin2019-07-18  50

问题 在非空双循环链表中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的前面,插入过程如下图所示:
操作如下:
    ①p->next=q;
    ②p->prior=q->prior;
    ③q->prior=p;
    ④p->prior->next=p;
    显然,题目中需要补充的语句为第④条语句,答案为C。
转载请注明原文地址:https://kaotiyun.com/show/6CCi777K
0

最新回复(0)