数据结构练习卷(附答案)

免费可打印的数据结构练习卷:8 道题,从简单到考试水平,附答案。可打印或另存为 PDF。

教师请注意: 可免费打印、复印并在课堂上使用。每份新练习题都有新的数值和独立的答案。欢迎在课程页面添加指向 ExamProblems 的链接。

姓名: ____________________   日期: ____________

1.简单

哪种数据结构遵循"后进先出"(LIFO)原则?

  1. A链表(Linked list)
  2. B栈(Stack)
  3. C队列(Queue)
  4. D哈希表(Hash table)
2.简单

哪种操作在数组中很慢,但在链表头部却很快?

  1. A在开头插入元素
  2. B求定长数组的长度
  3. C通过索引读取最后一个元素
  4. D访问第 5 个元素
3.简单

数组的元素在内存中是如何存储的?

  1. A存放在由内存页组成的树中
  2. B分散存放,通过指针相连
  3. C在一整块连续的内存中,一个接一个地存放
  4. D存放在由哈希选择的随机位置
4.中等

字典树(Trie,前缀树)特别适合用于:

  1. A存储矩阵
  2. B对数字排序
  3. C自动补全等前缀查找
  4. D求最短路径
5.中等

关于无向图的邻接矩阵,下列哪项是正确的?

  1. A它总是上三角矩阵
  2. B它的主对角线上总是 1
  3. C它关于主对角线对称
  4. D每一行恰好有一个 1
6.中等

循环缓冲区(环形缓冲区)通常用于实现:

  1. A图的遍历
  2. B固定大小的队列
  3. C哈希函数
  4. D二叉搜索树
7.困难

与有序链表相比,跳表(skip list)的主要优势是什么?

  1. A利用多层前向指针,实现期望 O(log n) 的查找
  2. B它不占用额外内存
  3. C它以无序方式存储键
  4. D保证 O(1) 的查找,因为每个节点都存有指向其他所有节点的指针
8.困难

从二叉搜索树中删除一个有两个子节点的节点,通常的做法是:

  1. A用它的中序后继(或前驱)替换它,然后删除那个节点
  2. B删除整棵子树
  3. C从头重建它下面的整棵子树,并重新插入其中包含的每个键
  4. D将它与根节点交换

答案

  1. 1. B · 栈(Stack)
  2. 2. A · 在开头插入元素
  3. 3. C · 在一整块连续的内存中,一个接一个地存放
  4. 4. C · 自动补全等前缀查找
  5. 5. C · 它关于主对角线对称
  6. 6. B · 固定大小的队列
  7. 7. A · 利用多层前向指针,实现期望 O(log n) 的查找
  8. 8. A · 用它的中序后继(或前驱)替换它,然后删除那个节点

完整分步解答:请在 examproblems.com 上练习本主题。