在线性链表的插入算法中,若要把结点q插在结点P后面,下列操作正确的是:( )A.使结点P指向结点q,再使结点q指向结点P的后件结点B.使结点q指向P的后件结点,再使结点P指向结点qC.使结点q指向结点P,再使结点P指向结点q的后件结点D.使结点P指向q的后件结点,再使结点q指向结点P

题目

在线性链表的插入算法中,若要把结点q插在结点P后面,下列操作正确的是:( )

A.使结点P指向结点q,再使结点q指向结点P的后件结点

B.使结点q指向P的后件结点,再使结点P指向结点q

C.使结点q指向结点P,再使结点P指向结点q的后件结点

D.使结点P指向q的后件结点,再使结点q指向结点P


相似考题
参考答案和解析
正确答案:B
在修改结点指针域的操作中,有一个操作顺序的问题。比较选项A和B只是操作顺序颠倒了-下。A中先使结点p指向q后,q就成为P新的后件结点了,原先通过结点P指向的后件结点与结点P脱节了那么后面的-步操作没有任何意义的:使结点q指向P的后件结点即使结点q成为自己的后件结点。按照B指定的顺序操作就不会出现在引用结点p的指针域之前已经把它的值修改了的情形。至于C和D项是命题者设计的干扰项想让考生把P和(1的顺序搞混。
总结,做这种类型的试题,最好画图。插入结点:若结点p的后面是结点s,要在p和s之间插入结点q,-般先将结点q指向结点s,再将结点p指向q,顺序不能颠倒。删除结点:若结点p的后面是结点q.结点q的后面是结点s,若要删除结点q,只需将结点p指向结点s即可。
更多“在线性链表的插入算法中,若要把结点q插在结点P后面,下列操作正确的是:( ) A.使结点P指 ”相关问题
  • 第1题:

    单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和小要将结点q插入结点p的后面,正确的操作应该是 ______。

    A.q^.link:=p^.link; p^.link:=q;

    B.q:=p^.link; p^.link:=q^.link;

    C.q^.link:=p; p^.link:=q;

    D.q:=p^.link; p:=q^.link


    正确答案:A
    解析:单向链表插入运算的关键步骤为:q^.link:=p^.link;p^.link:=q;

  • 第2题:

    在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()

    A.s→next = p→next; p→next = s;

    B.p→next = s; s→next = q;

    C.p→next = s→next; s→next = p;

    D.q→next = s; s→next = p;


    q→link = s; s→link = p;

  • 第3题:

    设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。

    A.s->next=p->next;p->next=-s;

    B.q->next=s; s->next=p;

    C.p->next=s->next;s->next=p;

    D.p->next=s;s->next=q;


    A

  • 第4题:

    设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。

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

    答案:B
    解析:
    插入s结点,应使s的next指针指向p结点,使q结点的next指针指向s。

  • 第5题:

    在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行()

    A.q->next=p;p->next=q;

    B.q->next=p->next;p->next=q;

    C.q->next=p->next;p=q;

    D.p->next=q;q->next=p;


    q->next=p->next;p->next=q;