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

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

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

姓名: ____________________   日期: ____________

1.简单

树中节点的深度是:

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

向栈顶添加元素的栈操作叫什么?

  1. AEnqueue
  2. BPop
  3. CPush
  4. DPeek
3.简单

一棵有 n 个节点的树有多少条边?

  1. An
  2. B2n
  3. Cn + 1
  4. Dn − 1
4.中等

检查 "{[()]}" 中的括号是否匹配,使用哪种数据结构?

  1. A队列
  2. B二叉搜索树
  3. C哈希表
  4. D栈
5.中等

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

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

你持有一个位于链表中间的节点的引用。在哪种链表中可以在 O(1) 内删除它?

  1. A动态数组
  2. B有序数组
  3. C双向链表
  4. D单链表
7.困难

在简单均匀哈希假设下,在含 n 个键、m 个桶的拉链法哈希表中查找的期望时间是多少?

  1. AO(n)
  2. BO(m)
  3. CO(log n)
  4. DO(1 + α),其中 α = n / m
8.困难

线段树(segment tree)通常用于:

  1. A在 O(log n) 时间内处理区间查询(如区间求和)和更新
  2. B通过把每个前缀存储在单独的树节点中,按字母顺序对字符串排序
  3. C实现栈
  4. D存储图的边

答案

  1. 1. B · 从根到该节点的边数
  2. 2. C · Push
  3. 3. D · n − 1
  4. 4. D · 栈
  5. 5. C · 通过消除头部或尾部的特殊情况来简化代码
  6. 6. C · 双向链表
  7. 7. D · O(1 + α),其中 α = n / m
  8. 8. A · 在 O(log n) 时间内处理区间查询(如区间求和)和更新

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