双向循环链表中,在p所指向的结点之后插入s指向的结点,其修改指针的操作是(4),其中p指向的不是最后一个结点。

admin2019-06-12  37

问题 双向循环链表中,在p所指向的结点之后插入s指向的结点,其修改指针的操作是(4),其中p指向的不是最后一个结点。

选项 A、p->next=s;s->prev=p;p->next->prev=s;s->next=->next;
B、p->next->prev=s;p->next=-s;s->prev=p;s->next=p->next;
C、s->prev=p;s->next=p->next;p->next=s;p->next->prev=s;
D、s->prev=p;s->next=p->next;p->next->prev=s;p->next=s;

答案D

解析 其插入方法如图1-4所示。
  一般情况下,做此类题的一个捷径是判断代码“p->next=s”后是否还有通过指针“p->next”访问p以前的直接后继的引用,有则错误。因为一旦执行完代码“p->next=s”,p的直接后继就更改为s,此后“p->next”不再是p以前的直接后继。例如,试题中A、B和C选项均在“p->next=s”之后使用了“p->next”,所以选项A、B和C错误,根据排除法,选项D正确。另外,建议考生在编写插入代码时,将 “p->next=s”写成插入算法的最后一步。
转载请注明原文地址:https://kaotiyun.com/show/AECZ777K
0

最新回复(0)