计算机技术与软件专业技术资格考试(程序员考试)

单选题若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。A 仅设尾指针的单向链表B 仅设头指针的单向链表C 仪设尾指针的单向循环链表D 仅设头指针的单向循环链表

题目
单选题
若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。
A

仅设尾指针的单向链表

B

仅设头指针的单向链表

C

仪设尾指针的单向循环链表

D

仅设头指针的单向循环链表

参考答案和解析
正确答案: C
解析: 单向链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),但是不能访问除了尾节点之外的所有其他节点。单向循环链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),同时达到表头节点的时间复杂度为0(1),因此对于题中给出的操作要求,适合采用仅设尾指针的单向循环链表。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。

A.仅设尾指针的单向链表

B.仅设头指针的单向链表

C.仪设尾指针的单向循环链表

D.仅设头指针的单向循环链表


参考答案:C
单向链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),但是不能访问除了尾节点之外的所有其他节点。单向循环链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),同时达到表头节点的时间复杂度为0(1),因此对于题中给出的操作要求,适合采用仅设尾指针的单向循环链表。

第2题:

在______中,只要指出表中任何一个节点的位置,就可以从它出发访问到表中其他所有的节点。

A.线性单链表

B. 双向链表

C. 线性链表

D. 循环链表


正确答案:D
解析: 在循环链表中,只要指出表中任何一个节点的位置,就可以从它出发访问到表中其他所有的节点,而线性单链表做不到这一点。

第3题:

对于线性表(由n个同类元素构成的线性序列),采用单向循环链表存储的特定之一是()

A.从表中任意节点出发都能遍历整个链表

B.对表中的任意节点可以进行随机访问

C.对于表中的任意一个节点,访问其直接前趋和直接后继节点所用时间相同

D.第一个节点必须是头节点


参考答案:A
对于单向循环链表,从表中任意节点出发都能遍历整个链表,但并不能对表中的任意节点进行随机访问,需要从设置的第一个节点开始,沿着指针访问表中的节点。当然访问某一节点的直接后继节点最快,访问其直接前趋节点最慢,因为首先要遍历到表尾,然后从表头遍历到其前趋节点。

第4题:

若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用______存储方式最节省时间。

A.单链表

B.双链表

C.单循环链表

D.带头节点的双循环链表


正确答案:D

第5题:

有n个节点的单链表中,算法的时间复杂度是O(1)的操作是()

A、访问第i个节点(1≤i≤n)

B、在第i个节点后插入一个新节点(1≤i≤n)

C、访问值为x的节点

D、将n个节点从小到大排序


参考答案:B

第6题:

若线性表的插入和删除操作频繁地在表头或表尾位置进行,则更适宜采用的存储结构为()。

A、无头结点的双向链表

B、带尾指针的循环链表

C、无头结点的单链表

D、带头指针的循环链表


正确答案:B

第7题:

以下表中可以随机访问的是()。

A.单向链表

B.双向链表

C.单向循环链表

D.顺序表


参考答案B

第8题:

● 若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用 (31) 最节省时间。

(31)

A. 仅设尾指针的单向链表

B. 仅设头指针的单向链表

C. 仅设尾指针的单向循环链表

D. 仅设头指针的单向循环链表


正确答案:C

第9题:

循环链表的主要优点是(44)。

A.已知某个节点的位置后,能很容易找到它的直接前驱节点

B.在进行删除操作后,能保证链表不断开

C.从表中任意节点出发都能遍历整个链表

D.不再需要头、尾指针


正确答案:C
解析:链表是用连续(或不连续)的存储单元存储数据元素,元素之间的逻辑关系用“指针”指明。链表具体分为以下几种形式。1)单向链表中节点包含一个指针,指明其直接前驱(或后继)元素节点:2)双向链表中节点包含两个指针,分别指明其直接前驱和直接后继元素节点;3)循环链表是最后节点的指针指向头节点,它可在任何位置上沿指针遍历整个链表。

第10题:

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

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

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

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

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


正确答案:D
解析:在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱节点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱节点原先的后继节点。

更多相关问题