在双链表中p所指的结点之前插入一个结点q的操作为( )。

admin2019-05-10  8

问题 在双链表中p所指的结点之前插入一个结点q的操作为(    )。

选项 A、p→prior=q;q→rlext=p;p→prior→next=q;q→prior=p→prior;
B、q→prior=p→prior;p→prior→next=q;q→next=p;p→prior=q→next;
C、q→next=p;p→next=q;q→prior→next=q;q→next=p;
D、p→prior→next=q;q→next=p;q→prior=p→prior;p→prior=q;

答案D

解析 这种题目其实大部分考生都见过,解题步骤都是固定的。先画图,将选项给出的代码逐个进行检查,看是否存在断链或者赋值错误的情况。但是有一种万能的解法可以应对算法题。如果此题是算法题,考生可将此题的答案按照下面所给的解题技巧轻松地写出,完全不必担心步骤是否会发生错误。
    解题技巧:这种题目的目的仅仅是需要把一个结点插入两个结点之间即可,答案肯定不唯一。但是我们应该从一些正确答案中挑选出一个万能的插入公式,这样,遇到这种题目,就能迎刃而解了。
    例题:假设在双链表中p所指的结点之后插入一个结点s,其操作语句描述为    s一>next=p一>next;s一>prior=p;p->next=s,s一>next一>prior=s;
    指针变化过程如图8-5所示。

    说明:不知道大家有没有注意到,在插入时,如果按照上面的顺序来插入,可以看成是一个万能的插入方式。不管怎样,先将要插入的结点两边链接好,这样可以保证不会发生链断之后找不到结点的情况。所以考生们一定要记住这种万能的插入结点的方式。
转载请注明原文地址:https://kaotiyun.com/show/OBCi777K
0

最新回复(0)