1.简单
树的根是什么?
- A值最大的节点
- B没有父节点的最顶端节点
- C中间的任意节点
- D没有子节点的节点
2.简单
树中节点的深度是:
- A从该节点到最深叶子的边数
- B其子树中的节点个数
- C该节点的子节点个数
- D从根到该节点的边数
3.简单
栈的 peek(或 top)操作做什么?
- A返回栈底元素
- B删除栈顶元素并返回它
- C返回栈顶元素但不删除它
- D删除栈中所有元素
4.中等
一棵二叉树的根为 1,左子节点为 2,右子节点为 3;节点 2 的子节点为 4(左)和 5(右)。后序遍历的结果是什么?
- A4 2 5 1 3
- B5 4 3 2 1
- C4 5 2 3 1
- D1 2 4 5 3
5.中等
链表中哨兵(哑)节点的作用是什么?
- A防止链表增长超过固定的最大节点数
- B通过消除头部或尾部的特殊情况来简化代码
- C使链表有序
- D存储元素的个数
6.中等
一个大小为 7 的哈希表使用 h(k) = k mod 7 和线性探测。插入 10 之后,17 存放在哪里?
- A下标 3
- B下标 0
- C下标 4
- D下标 6
7.困难
哪种数据结构可以支持 get 和 put 均为 O(1) 的 LRU(最近最少使用)缓存?
- A仅栈
- B单个有序数组
- C仅二叉搜索树
- D哈希表与双向链表相结合
8.困难
哪种结构能以总共 O(n) 的时间求出数组中每个大小为 k 的窗口的最大值?
- A由窗口元素组成的单链表
- B为每个窗口重建的最小堆
- C通过移动元素来更新的有序数组
- D一个按值递减顺序保存下标的双端队列
答案
- 1. B · 没有父节点的最顶端节点
- 2. D · 从根到该节点的边数
- 3. C · 返回栈顶元素但不删除它
- 4. C · 4 5 2 3 1
- 5. B · 通过消除头部或尾部的特殊情况来简化代码
- 6. C · 下标 4
- 7. D · 哈希表与双向链表相结合
- 8. D · 一个按值递减顺序保存下标的双端队列
完整分步解答:请在 examproblems.com 上练习本主题。