题目
【单选题】在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。A. p→next=q; q→prior=p; p→next→prior=q; q→next=q;B. p→next=q; p→next→prior=q; q→prior=p; q→next=p→next;C. q→prior=p; q→next=p→next; p→next→prior=q; p→next=q;D. q→prior=p; q→next=p→next; p→next=q; p→next→prior=q;
【单选题】在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。
A. p→next=q; q→prior=p; p→next→prior=q; q→next=q;
B. p→next=q; p→next→prior=q; q→prior=p; q→next=p→next;
C. q→prior=p; q→next=p→next; p→next→prior=q; p→next=q;
D. q→prior=p; q→next=p→next; p→next=q; p→next→prior=q;
题目解答
答案
D. q→prior=p; q→next=p→next; p→next=q; p→next→prior=q;
解析
步骤 1:理解双向循环链表的结构
双向循环链表是一种链表,其中每个节点有两个指针,一个指向下一个节点,另一个指向前一个节点。链表的最后一个节点的下一个指针指向第一个节点,第一个节点的前一个指针指向最后一个节点,形成一个循环。
步骤 2:确定插入新节点的操作
在p指针所指的结点后插入q所指向的新结点,需要修改p结点的next指针,q结点的prior和next指针,以及p结点的next结点的prior指针。
步骤 3:分析选项
A. p→next=q; q→prior=p; p→next→prior=q; q→next=q;
B. p→next=q; p→next→prior=q; q→prior=p; q→next=p→next;
C. q→prior=p; q→next=p→next; p→next→prior=q; p→next=q;
D. q→prior=p; q→next=p→next; p→next=q; p→next→prior=q;
双向循环链表是一种链表,其中每个节点有两个指针,一个指向下一个节点,另一个指向前一个节点。链表的最后一个节点的下一个指针指向第一个节点,第一个节点的前一个指针指向最后一个节点,形成一个循环。
步骤 2:确定插入新节点的操作
在p指针所指的结点后插入q所指向的新结点,需要修改p结点的next指针,q结点的prior和next指针,以及p结点的next结点的prior指针。
步骤 3:分析选项
A. p→next=q; q→prior=p; p→next→prior=q; q→next=q;
B. p→next=q; p→next→prior=q; q→prior=p; q→next=p→next;
C. q→prior=p; q→next=p→next; p→next→prior=q; p→next=q;
D. q→prior=p; q→next=p→next; p→next=q; p→next→prior=q;