问题 单项选择题

在一个双向链表中,在*p结点之后插入结点*q的操作是( )。

A.q->prior=p;p->next=q;p->next->prior=q;q->next=p->next;
B.q->next=p->next;p->next->prior=q;p->next=q;q->prior=p;
C.p->next=q;q->prior=p;q->next=p->next;p->next->prior=q;
D.p->next->prior=q;q->next=p->next;q->prior=p;p->next=q;

答案

参考答案:B

解析: 在链表中,对指针的修改必须保持线性表的逻辑关系,否则,将违背线性表的逻辑特征。
本题主要考查双向链表的插入算法中的指针的变化过程。虽然4个选项中的语句相同,但顺序不同,根据双向链表的结构特点可知选项B的操作顺序是正确的,其他3个选项的指针修改顺序不能完成在*p结点之后插入结点*q的操作。

填空题
单项选择题 A1/A2型题