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

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

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

姓名: ____________________   日期: ____________

1.简单

树的根是什么?

  1. A值最大的节点
  2. B没有父节点的最顶端节点
  3. C中间的任意节点
  4. D没有子节点的节点
2.简单

树中节点的深度是:

  1. A从该节点到最深叶子的边数
  2. B其子树中的节点个数
  3. C该节点的子节点个数
  4. D从根到该节点的边数
3.简单

栈的 peek(或 top)操作做什么?

  1. A返回栈底元素
  2. B删除栈顶元素并返回它
  3. C返回栈顶元素但不删除它
  4. D删除栈中所有元素
4.中等

一棵二叉树的根为 1,左子节点为 2,右子节点为 3;节点 2 的子节点为 4(左)和 5(右)。后序遍历的结果是什么?

  1. A4 2 5 1 3
  2. B5 4 3 2 1
  3. C4 5 2 3 1
  4. D1 2 4 5 3
5.中等

链表中哨兵(哑)节点的作用是什么?

  1. A防止链表增长超过固定的最大节点数
  2. B通过消除头部或尾部的特殊情况来简化代码
  3. C使链表有序
  4. D存储元素的个数
6.中等

一个大小为 7 的哈希表使用 h(k) = k mod 7 和线性探测。插入 10 之后,17 存放在哪里?

  1. A下标 3
  2. B下标 0
  3. C下标 4
  4. D下标 6
7.困难

哪种数据结构可以支持 get 和 put 均为 O(1) 的 LRU(最近最少使用)缓存?

  1. A仅栈
  2. B单个有序数组
  3. C仅二叉搜索树
  4. D哈希表与双向链表相结合
8.困难

哪种结构能以总共 O(n) 的时间求出数组中每个大小为 k 的窗口的最大值?

  1. A由窗口元素组成的单链表
  2. B为每个窗口重建的最小堆
  3. C通过移动元素来更新的有序数组
  4. D一个按值递减顺序保存下标的双端队列

答案

  1. 1. B · 没有父节点的最顶端节点
  2. 2. D · 从根到该节点的边数
  3. 3. C · 返回栈顶元素但不删除它
  4. 4. C · 4 5 2 3 1
  5. 5. B · 通过消除头部或尾部的特殊情况来简化代码
  6. 6. C · 下标 4
  7. 7. D · 哈希表与双向链表相结合
  8. 8. D · 一个按值递减顺序保存下标的双端队列

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