计算机类

单选题双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为()。A p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=p->llink;B q->llink=p->llink;p->llink->rlink=q;q->rlink=p;p->llink=q->rlink;C q->rlink=p;p->rlink=q;p->llink->rlink=q;q->rli

题目
单选题
双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为()。
A

p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=p->llink;

B

q->llink=p->llink;p->llink->rlink=q;q->rlink=p;p->llink=q->rlink;

C

q->rlink=p;p->rlink=q;p->llink->rlink=q;q->rlink=p;

D

p->llink->rlink=q;q->rlink=p;q->llink=p->llink;p->llink=q;

参考答案和解析
正确答案: D
解析:
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

假设双链表结点的类型如下: Typedef struct linknode {int data; /*数据域*/ struct linknode *llink; /*llink是指向前驱结点的指针域*/ struct linknode *rlink; /*rlink是指向后续结点的指针域*/ }bnode 下面给出的算法段是要把一个q所指的新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是(32)。

A.q->rlink=p;q->llink=p->llink;p->llink=q;p->llink->rlink=q;

B.p->llink=q;q->rlink=p;p->llink->rlink=q:q->llink=p->llink;

C.q->llink=p->llink:q->rlink=p;p->llink->rlink=q;p->llink=q;

D.以上都不对


正确答案:C
解析:本题考查链表的操作问题。在链表中插入一个结点时,首先需要确定插入的位置,题目中是插入在p结点前面,因此,需要把插入结点q的rlink指向p,q的llink指向p的llink。然后,需要把p的llink指向q,p的前驱结点的rlink也指向q。

第2题:

双链表的每个结点包括两个指针域。其中rlink指向结点的后继,llink指向结点的前驱。如果要在P所指结点后插入q所指的新结点,下列( )操作序列是正确的。

A) q↑.rlink:=p; q↑.llink:=p↑.llink; p↑.rlink↑.rlink:=q; p↑.11ink:=q;

B) q↑llink:=p; q↑.rlink:=p↑.rlink; p↑rlink↑.llink:=q; p↑rlink:=q;

C) p↑.llink↑.rlink:=q; p↑.llink:=q; q↑rlink:=p; q↑.llink:=p↑.llink;

D) p↑.rlink↑.llink:=q; p↑.rlink:=q; q↑llink:=p; q↑rlink:=p↑.rlink;


正确答案:B
在双链表中,如果要在P所指结点后插入q所指的新结点,只需修改P所指结点的rlink字段和原后继的llink字段,并置q所指结点的llink和rlink值。即q↑.llink:=p;q↑.rlink:=p ↑.rlink;p ↑.rlink ↑.llink:=q;p ↑.rlink:=q。

第3题:

( 11 )双链表的每个结点包括两个指针域。其中 rlink 指向结点的后继, llink 指向结点的前驱。如果要在 p 所指结点前面插入 q 所指的新结点,下列哪一个操作序列是正确的?

A ) p ↑ . rlink ↑ .llink:=q ; p ↑ .rlink:=q ; q ↑ .llink:=p ; q ↑ .rlink:=p ↑ .rlink ;

B ) p ↑ . llink ↑ .rlink:=q ; p ↑ .llink:=q ; q ↑ .rlink:=p ; q ↑ .llink:=p ↑ .llink ;

C ) q ↑ . llink:=p ; q ↑ .rlink:=p ↑ .rlink ; p ↑ .rlink ↑ .llink:=q ; p ↑ .rlink:=q ;

D ) q ↑ . rlink:=p ; q ↑ .llink:=p ↑ .llink ; p ↑ .llink ↑ .rlink:=q ; p ↑ .llink:=q ;


正确答案:D

第4题:

双链表的每个节点包括两个指针域。其中rlink指向节点的后继,llink指向节点的前驱。如果要在p所指节点后插入q所指的新节点,下面哪一个操作序列是正确的?

A.p↑.rlink↑.llink:=q;p↑.rlink:=q;q↑.llink:=p;q↑.rlink:=p↑,rlink;

B.p↑.llink↑.rlink:=q;p↑.llink:=q;q↑.rlink:=p;q↑.llink:=p↑.llink;

C.q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.llink:=q;p↑.rlink:=q↑;

D.q↑.rlink:=p;q↑.llink:=p↑.llink;p↑.1link↑.rlink:=q;p↑.llink:=q;


正确答案:C
解析:在双链表中,如果要在P所指节点后插入q所指的新节点,只需修改P所指节点的rlink字段和原后继的llink字段,并置q所指节点的llink和rlink值。即:
  q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.rlink:=q;p↑.rlink:=q。

第5题:

要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行q->next= p->next。()

此题为判断题(对,错)。


标准答案:对

第6题:

单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的单链表结点之后,下面的操作序列中正确的是( )

A)q;=p↑.link;p↑.link:=q↑,link;

B)p↑.link.q↑.link;q:=p↑.link;

C)q↑.link::p↑.link;P↑.link:=q;

D)P↑.link:=q;q↑.link:=p↑.link;


正确答案:C
由单链表的存储结构可知,每个结点的指针域保存其后继结点的指针。将指针为q的新结点插入到指针为P的结点之后,则原指针为P的结点的后继结点成为新结点的后继结点,由单链表的存储结构可知应执行q↑.link:=p↑.link,新结点成为指针P的后继结点,因此应执行p↑.link:=q,综上所述,选项C)是正确的。 

第7题:

双链表的每个结点 包括两个指针域。其中rlink指向结点的后继,llink指向结点的前驱。如果要在p所指结点后插入q所指的新结点,下面操作序列正确的是( )。A.p↑.rlink↑.llink:q;p↑.rlink:=q;q↑.llink:=p;q↑.rlink:p↑.rlink;B.p↑llink↑.rlink:q;p↑.llink:=q;q↑.rlink:=p;q↑.llink:p↑.llink;C.q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.llink:=q;p↑.rlink:=q;D.q↑.rlink:=p;q↑.llink:p↑.llink;p↑llink↑.rlink:q;p↑.llink:=q;


正确答案:C
设p所指结点为A,q所指结点为B,将A结点的右指针指向B结点,B结点的左指针指向A结点,右指针指向A结点原来的下一结点(设为C),C结点左指针指向B结点。

第8题:

双链表的每个结点包括两个指针域。其中rlink指向结点的后继,llink指向结点的前驱,如果要在p所指结点后插入q所指的新结点,操作序列正确的是( )。

A.p↑.rlinkt↑llink:=q;p↑.rlink:=q;q↑.llink:=p;q↑.rlink:=p↑.rlink;

B.p↑.llinkl↑.rlink:=q;p↑. llink:=q;q↑.rlink:=p;q↑.llink:=p↑.llink;

C.q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlinkl.llink:=q;p↑.rlink:=q↑;

D.q↑.rlink:=p;q↑.llink:=p↑.llink;p↑.llink↑.rlink:=q;p↑,llink:=q;


正确答案:C
解析:如果在链表的每个结点中包括两个指针域,其中rlink指向结点的后继,llink指向结点的前驱,就可以方便地进行向后和向前两个方向的查找。这样的链表称作双链表。在双链表中,如果要在P所指结点后插入q所指的新结点,只需修改P所指结点的rlink字段和原后继的llink字段,并置q所指结点的llink和rlink值.即:q↑.llink:=p;q↑.rlink:=p↑riink;p↑.riink↑.rlink:=q;p↑.rlink:=q

第9题:

在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点其修改指针的操作是( )。(双向链表的结点结构是llink,data,rlink)

A: p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=q;

B: p->llink=q; p->llink->rlink=q; q ->rlink=p;q->llink= p->llink;

C: p->llink=q; q->llink= p->llink; p->llink->rlink=q;p->llink=q;

D: q->llink= p->llink;q->rlink=p; p->llink =q;p->llink=q;


正确答案: C

第10题:

在双向循环链表中,在P指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是(55)。

A.P->llink=q;q->rlink=p;P->llink->rlink=q;q->llink=p;

B.P->llink=q;P->llink->rlink=q;q->rlink=p;q->llink=p->llink;

C.q->rlink=p;q->liink=p->llink;P->llink->rlink=q;P->llink=q;

D.q->llink=p->llink;q->rlink=p;P->llink=q;P->rlink=q;


正确答案:C
解析:这里应是先将;的左右指针设定,即q的左指针赋为p的左指针,q的右指针赋为p,这两步可以互换;然后将p的左指针指向的结点的右指针赋为q;最后将p的左指针赋为qo所以应选Co

更多相关问题