数据结构(线性表)习题与答案

数据结构(线性表)习题与答案
数据结构(线性表)习题与答案

1、线性表是具有n个 ______ 的有限序列。

A.数据项

B.字符

C.数据元素

D.表元素

正确答案:C

2、线性表是 _______。

A.一个无限序列,可以为空

B.一个有限序列不可以为空

C.一个无限序列,不可以为空

D.一个有限序列,可以为空

正确答案:D

3、关于线性表的正确说法是 _______。

A.每个元素都有一个前驱和一个后继元素

B.除第一个元素和最后一个元素外,其余元素有且仅有一个前驱和一个后继元素

C.表中元素的排序顺序必须是由小到大或由大到小

D.线性表中至少有一个元素

正确答案:B

4、线性表采用链表存储时,其存放各个元素的单元地址是 _______。

A.连续与否均可以

B.部分地址必须是连续的

C.一定是不连续的

D.必须是连续的

5、链表不具备的特点是 _______。

A.插入删除不需要移动元素

B.所需空间与其长度成正比

C.不必事先估计存储空间

D.可随机访问任一节点

正确答案:D

6、线性表的静态链表存储结构与顺序存储结构相比,优点是 _______。

A.所有的操作算法实现简单

B.便于利用零散的存储器空间

C.便于随机存取

D.便于插入和删除

正确答案:D

7、线性表的顺序存储结构和链式存储结构相比,优点是 _______。

A.便于随机存取

B.便于插入和删除

C.所有的操作算法实现简单

D.节省存储空间

正确答案:A

8、设线性表有n个元素,以下操作中,_______在顺序表上实现比在链表上实现效率高。

A.交换第1个元素第2个元素的值

B.输出与给定值x相等的元素在线性表中的符号

C.输入第i(1<=i<=n)个元素值

D.顺序输出这n个元素的值

正确答案:C

9、对于一个线性表,既要求能够较快地进行插入和删除操作,又要求存储结构能够反映数据元素之间的逻辑关系,则应采用 _______ 存储结构。

A.顺序

B.链式

C.散列

D.索引

正确答案:B

10、设线性表中有n个元素,以下操作,_______ 在单链表上实现要比在顺序表上实现效率高。

A.交换第i个元素和第n-i+1个元素的值

B.在第n个元素的后面插入一个新元素

C.顺序输出前k个元素

D.删除指定位置元素的后一个元素

正确答案:D

11、以下属于顺序表的优点是 _______。

A.插入元素方便

B.删除元素方便

C.以上都不对

D.存储密度大

正确答案:D

12、要求线性表采用静态空间分配方式,且插入和删除操作时不需要移动元素,采用的存储结构是 _______。

A.静态链表

B.单链表

C.双链表

D.顺序表

正确答案:A

13、如果最常用的操作时取第i个元素及前驱元素,则采用 _______ 存储方式最节省时间。

A.单链表

B.循环单链表

C.顺序表

D.双链表

正确答案:C

14、与单链表相比,双链表的优点之一是 _______。

A.插入、删除操作更简单

B.可以省略表头指针或表尾指针

C.可以进行随机访问

D.访问前后相邻节点更方便

正确答案:D

15、在长度为n的顺序表中插入一个元素的时间复杂度为 _______。

A. O(n2)

B.O(1)

C.O(n)

D.O(log2n)

正确答案:C

16、在长度为n的顺序表中删除一个元素的时间复杂度为 _______。

A.O(log2n)

B. O(1)

C.O(n)

D. O(n2)

正确答案:C

17、在两个各有n个元素的递增有序顺序表归并成一个有序顺序表,其最少的比较次数为_______。

A.2n

B.2n-1

C.n

D.n-1

正确答案:C

18、将两个长度为n、m的递增有序表归并成一个有序顺序表,其最少的比较次数是_______。(MIN表示取最小值)

A.n

B.m

C.不确定

D.MIN(m, n)

正确答案:D

19、在带头节点的单链表L为空的判定条件是 _______。

A. L==NULL

B.L->NEXT==NULL

C. L!=NULL

D. L->NEXT==L

正确答案:B

20、对于一个具有n个元素的线性表,建立其单链表的时间复杂度为 _______。

A. O(n)

B. O(n2)

C.O(1)

D. O(log2n)

正确答案:A

21、在单链表中查找指定值的节点的时间复杂度是 _______。

A.O(n2)

B.O(n)

C.O(log2n)

D.O(1)

正确答案:B

22、以下关于单链表的叙述中,不正确的是 _______。

A.逻辑上相邻的元素物理上不必相邻

B.可以通过头节点直接计算第i个节点的存储地址

C.插入、删除运算操作简单,不必移动节点

D.节点除自身信息外还包括指针域,因此存储密度小于顺序存储结构

正确答案:B

23、在单链表中,增加一个头节点的目的是为了 _______。

A.说明单链表是线性表的链式存储结构

B.使单链表至少有一个节点

C.方便运算的实现

D.标识链表中重要节点的位置

正确答案:C

24、在一个具有n个节点的有序单链表中插入一个新节点并仍然保持有序的时间复杂度是 _______。

A. O(n)

B.O(n2)

C.O(nlog2n)

D.O(1)

正确答案:A

25、将长度为m的单链表链接在长度为n的单链表之后的算法时间复杂度为_______。

A.O(1)

B.O(m)

C.O(n)

D.O(m+n)

正确答案:C

26、已知一个长度为n的单链表中所有节点是递增有序的,以下叙述中正确的是

_______。

A.插入一个节点使之有序的算法的时间复杂度为O(1)

B. 找最小值节点的算法的时间复杂度为 O(1)

C.删除最大值节点使之有序的算法的时间复杂度为 O(1)

D. 以上都不对

正确答案:B

27、在一个长度为n(n>1)的带头节点的单链表上,另设有尾指针r(指向尾节点),执行_______操作与链表的长度有关。

A.在单链表最后一个元素后插入一个新节点

B.删除单链表中的第一个元素

C.在单链表中第一个元素前插入一个新节点

D.删除单链表的尾节点

正确答案:D

28、在一个双链表中,在*p节点之后插入节点*q的操作是 _______。

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

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

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

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

正确答案:A

29、在一个双链表中,在*p节点之前插入节点*q的操作是 _______。

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

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

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

D.q ->prior= p -> prior;p -> prior ->next=q;q-> next=p;p -> prior = q->next;正确答案:C

30、在一个双链表中,删除*p节点的操作是 _______。

A.p ->prior= p -> prior -> prior;p -> prior ->prior = p;

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

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

D.p -> prior –>next= p-> next;p ->next-> prior = p -> prior;

正确答案:D

31、在一个双链表中,删除*p节点之后的一个节点,其时间复杂度为_______。

A.O(nlog2n)

B.O(n2)

C.O(1)

D.O(n)

正确答案:C

32、非空的循环单链表L的尾节点(由p所指向)满足 _______。

A.p-> next == NULL

B.p == NULL

C.p -> next == L

D. p==L

正确答案:C

33、带表头结点的双循环链表L为空表的条件是 _______。

A.L -> next == L

B.L== NULL

C.L -> prior == NULL

D.L-> next -> prior == NULL

正确答案:A

34、某线性表最常用的操作是在尾元素之后插入一个元素和删除尾元素,则采用

_______ 存储方式最节省运算时间。

A.单链表

B.双链表

C.循环双链表

D.循环单链表

正确答案:C

35、如果对含有n(n>1)个元素的线性表的运算只有4种,即删除第一个元素、删除尾元素、在第一个元素前面插入新元素、在尾元素的后面插入新元素,则最好使用

_______。

A.只有尾节点指针没有头节点的非循环双链表

B.既有表头指针也有表尾指针的循环单链表

C.只有尾节点指针没有头节点的循环单链表

D.只有开始数据节点指针没有尾节点指针的循环双链表

正确答案:D

36、在某线性表最常用的操作是在尾元素之后插入一个元素和删除第一个元素。故采用_______ 存储方式最节省时间。

A.单链表

B.双链表

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

D.仅有头节点指针的循环单链表

37、两个表长都为n、不带表头结点的单链表,结点类型都相同,头指针分别为h1与h2,且前者是循环链表,后者是非循环链表,则 _______。

A.h1和h2是不同类型的变量

B.循环链表要比非循环链表占用更多的内存空间

C.对于两个链表来说,删除尾节点的操作,其时间复杂度都是O(n)

D.对于两个链表来说,删除首节点的操作,其时间复杂度都是O(1)

正确答案:C

38、在长度为n的 _______ 上,删除第一个元素,其算法的时间复杂度为O(n)。

A.只有表尾指针的带表头节点的循环单链表

B.只有表头指针的不带表头节点的循环单链表

C.只有表头指针的带表头节点的循环单链表

D.只有表尾指针的不带表头节点的循环单链表

正确答案:B

39、下面关于线性表的叙述错误的是 _______。

A.线性表采用顺序存储便于插入和删除操作的实现

B.线性表采用顺序存储必须占用一片连续的存储空间

C.线性表采用链式存储不必占用一片连续的存储空间

D.线性表采用链式存储便于插入和删除操作的实现

正确答案:A

40、对于双链表,在两个节点之间插入一个新节点是,需要修改 _______ 个指针域。

A.3

B.1

C.4

D.2

41、在单链表中,要删除某一指定的节点,必须找到该节点的 _______ 节点。

A.前驱

B.头节点

C.后继

D.尾节点

正确答案:A

42、求一个单链表长度的算法的时间复杂度为 _______。

A.O(1)

B. O(n2)

C.O(log2n)

D. O(n)

正确答案:D

二、判断题

43、线性表中每个元素都有一个前驱元素和一个后继元素。(×)

44、线性表中所有元素的排列顺序必须从小到大或从大到小。(×)

45、静态链表既有顺序存储结构的优点,又有动态链表的优点,所以,利用它存取第i 个元素的时间与元素个数n无关。(×)

46、静态链表与动态链表在元素的插入、删除方面类似,不需要做元素的移动。(√)

47、线性表的顺序存储结构优于链式存储结构。(×)

48、在循环单链表中,从表中任一节点出发都可以通过前后移动操作遍历整个循环链表。(×)

49、在单链表中,可以从头节点开始查找任何一个节点。(√)

50、在双链表中,可以从任一节点开始沿着同一方向查找到任何其他节点。(×)

相关主题
相关文档
最新文档