Skip to main content

第8章 线性数据结构

教材结构说明

本章在原教材中以 练习题/选择题 为主,没有单独的知识讲解部分。以下内容按教材原有顺序整理,并将答案做成 Docusaurus/MDX 可折叠形式。

1. 哈希表:线性探查

设有一个含有 13 个元素的 Hash 表(地址 0~12),Hash 函数是:

H(key) = key % 13

其中 % 是求余数运算。

用线性探查法解决冲突,则对于序列:

(2、8、31、20、19、18、53、27)

18 应放在第几号格中( )。

  • A. 5
  • B. 9
  • C. 4
  • D. 0
查看答案

答案:B

2. 哈希表:冲突处理

给定地址区间为 0~9 的哈希表,哈希函数为:

h(x) = x % 10

采用线性探查的冲突解决策略:出现冲突时,向后探查第一个空地址存储;若地址 9 冲突,则从地址 0 重新开始探查。

哈希表初始为空表,依次存储:

(71, 23, 73, 99, 44, 79, 89)

请问 89 存储在哈希表哪个地址中( )。

  • A. 9
  • B. 0
  • C. 1
  • D. 2
查看答案

答案:D

3. 哈希表:mod 函数

现有一个地址区间为 0~10 的哈希表。出现冲突时,向后找第一个空地址存储;到地址 10 冲突后,从 0 开始向后探查。

现在依次存储:

(0, 1, 2, 3, 4, 5, 6, 7)

哈希函数为 mod

请问 7 存储在哈希表哪个地址中( )。

  • A. 5
  • B. 6
  • C. 7
  • D. 8
查看答案

答案:C

4. 字符串的非空子串

设字符串:

S = "Olympic"

S 的非空子串的数目是( )。

  • A. 29
  • B. 28
  • C. 16
  • D. 17
查看答案

答案:B

5. 字符串

以下关于字符串的判定语句中正确的是( )。

  • A. 字符串是一种特殊的线性表
  • B. 串的长度必须大于零
  • C. 字符串不可以用数组来表示
  • D. 空格字符组成的串就是空串
查看答案

答案:A

6. 字符串相邻交换

定义一种字符串操作为:交换相邻两个字符

将:

DACFEB

变为:

ABCDEF

最少需要( )次上述操作。

  • A. 7
  • B. 8
  • C. 9
  • D. 6
查看答案

答案:A

7. 链表特点

链表不具有的特点是( )。

  • A. 插入删除不需要移动元素
  • B. 不必事先估计存储空间
  • C. 所需空间与线性表长度成正比
  • D. 可随机访问任一元素
查看答案

答案:D

8. 双向链表查询复杂度

在含有 n 个元素的双向链表中,查询是否存在关键字为 k 的元素,最坏情况下运行的时间复杂度是( )。

  • A. O(1)
  • B. O(log n)
  • C. O(n)
  • D. O(nlogn)
查看答案

答案:C

9. 链表的存储地址

线性表若采用链表存储结构,要求内存中可用存储单元地址( )。

  • A. 必须连续
  • B. 部分地址必须连续
  • C. 一定不连续
  • D. 连续不连续均可
查看答案

答案:D

10. 栈:入栈顺序

已知元素:

(8,25,14,87,51,90,6,19,20)

问这些元素以怎样的顺序进入栈,才能使出栈的顺序满足:

  • 851 前面
  • 9087 后面
  • 2014 后面
  • 256 前面
  • 1990 后面

( )。

  • A. 20,6,8,51,90,25,14,19,87
  • B. 51,6,19,20,14,8,87,90,25
  • C. 19,20,90,8,6,25,51,14,87
  • D. 6,25,51,8,20,19,90,87,14
查看答案

答案:D

11. 栈:合法出栈序列

对于入栈顺序为:

a, b, c, d, e, f, g

的序列,下列( )不可能是合法的出栈序列。

  • A. a, b, c, d, e, f, g
  • B. a, d, c, b, e, g, f
  • C. a, d, b, c, g, f, e
  • D. g, f, e, d, c, b, a
查看答案

答案:C

12. 栈和队列

设栈 S 和队列 Q 的初始状态为空。

元素:

e1, e2, e3, e4, e5, e6

依次通过栈 S,一个元素出栈后即进入队列 Q

若出队的顺序为:

e2, e4, e3, e6, e5, e1

则栈 S 的容量至少应该为( )。

  • A. 2
  • B. 3
  • C. 4
  • D. 5
查看答案

答案:B

13. 数制运算

(2070)<sub>16</sub> + (34)<sub>8</sub> 的结果不正确的是( )。

  • A. (8332)<sub>10</sub>
  • B. (208C)<sub>16</sub>
  • C. (100000000110)<sub>2</sub>
  • D. (20214)<sub>8</sub>
查看答案

答案:C

14. 【多选】哈希函数

将:

(2, 6, 10, 17)

分别存储到某个地址区间为 0~10 的哈希表中。

如果哈希函数 h(x) 为( ),将不会产生冲突。

其中 a mod b 表示 a 除以 b 的余数。

  • A. x mod 11
  • B. x^2 mod 11
  • C. 2^x mod 11
  • D. ⌊√x⌋ mod 11
查看答案

答案:C、D

15. 【多选】栈的出栈序列

设栈 S 的初始状态为空,元素:

a, b, c, d, e, f, g

依次入栈。

以下出栈序列不可能出现的有( )。

  • A. a, b, c, e, d, f, g
  • B. b, c, a, f, e, g, d
  • C. a, e, c, b, d, f, g
  • D. g, e, f, d, c, b, a
查看答案

答案:C、D