1.简单
树中节点的深度是:
- A从该节点到最深叶子的边数
- B从根到该节点的边数
- C该节点的子节点个数
- D其子树中的节点个数
2.简单
向栈顶添加元素的栈操作叫什么?
- AEnqueue
- BPop
- CPush
- DPeek
3.简单
一棵有 n 个节点的树有多少条边?
- An
- B2n
- Cn + 1
- Dn − 1
4.中等
检查 "{[()]}" 中的括号是否匹配,使用哪种数据结构?
- A队列
- B二叉搜索树
- C哈希表
- D栈
5.中等
链表中哨兵(哑)节点的作用是什么?
- A使链表有序
- B防止链表增长超过固定的最大节点数
- C通过消除头部或尾部的特殊情况来简化代码
- D存储元素的个数
6.中等
你持有一个位于链表中间的节点的引用。在哪种链表中可以在 O(1) 内删除它?
- A动态数组
- B有序数组
- C双向链表
- D单链表
7.困难
在简单均匀哈希假设下,在含 n 个键、m 个桶的拉链法哈希表中查找的期望时间是多少?
- AO(n)
- BO(m)
- CO(log n)
- DO(1 + α),其中 α = n / m
8.困难
线段树(segment tree)通常用于:
- A在 O(log n) 时间内处理区间查询(如区间求和)和更新
- B通过把每个前缀存储在单独的树节点中,按字母顺序对字符串排序
- C实现栈
- D存储图的边
答案
- 1. B · 从根到该节点的边数
- 2. C · Push
- 3. D · n − 1
- 4. D · 栈
- 5. C · 通过消除头部或尾部的特殊情况来简化代码
- 6. C · 双向链表
- 7. D · O(1 + α),其中 α = n / m
- 8. A · 在 O(log n) 时间内处理区间查询(如区间求和)和更新
完整分步解答:请在 examproblems.com 上练习本主题。