单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,结点q在结点p的前面,要

题目

单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,结点q在结点p的前面,要删除结点p,正确的操作应该是

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

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

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

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

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

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


正确答案:C
解析:单链表是链式存储的线性表,它的每个结点中包括一个指针link,它指向该结点的后继结点的位置。将指针q指向的新结点插入到指针P指向的单链表结点之后的操作步骤是将指针P所指向的地址赋于q,将q的值赋于日向的地址,其运算表达式为q^.link:=p^.link;p^ link:=q。

第2题:

在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是p=p->next;和( )。

A、q=p

B、q->next=p

C、p=q->next

D、p->next=q


标准答案:B

第3题:

程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针向链表的第—个结点。

若有以下程序段 q=s; s=s->next; p=s; while(p->next) p=p->next; P->next=q; q->next=NULL; 该程序段实现的功能是______。

A.首结点成为尾结点

B.尾结点成为首结点

C.删除首结点

D.删除尾结点


正确答案:A
解析:根据语句q=s得知指针q指向结点a;由s=s->next;p=s得知指针p和s均指向接点b;在满足while语句的情况下,抽行p=p->next;得知p现在指向结点c;由p->next=q得知p指向的结点是a,a移到c的后面;由q->next=NULL得知结点a与结点b的指针断开。移动后的结构图如图所示:

第4题:

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

A.s→link=p→link;p→link=s;

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

C.p→link=s→link;s→link=p;

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


正确答案:D
解析:q结点是p结点的前驱结点,若在q与p之间插入结点s,只需先将q的指针指向s,然后再将s指向p即可。

第5题:

单键表的每个结点中包括一个指针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
解析:本题考核有关计算机键表的基本知识,参考2.2.2“键表”一节。

第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题:

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

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


标准答案:对

第8题:

在线性链表的插入算法中,若要把结点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即可。

第9题:

单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现将从单链表中删除指针p所指的下一结点。下面的操作序列中哪一个是正确的?

A.q:=p^.1ink;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


正确答案:A
解析: 单链表是链式存储的线性表,它的每个结点中包括一个指针link,它指向该结点的后继结点的位置。从单链表中删除指针P所指的下一结点的运算表达式为 q:^=p^.link;p^.link:=q^.link。

第10题:

单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,要将结点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;

更多相关问题