1.简单
哈希表以什么形式存储数据?
- A通过哈希函数定位的键值对
- B定长字符串
- C仅为有序列表
- D键有序的树
2.简单
双向链表中的每个节点包含什么?
- A只有数据和指向下一个节点的指针
- B数据、指向下一个节点的指针和指向前一个节点的指针
- C两份数据和一个指针
- D数据和两个指针,一个指向下一个节点,一个指向再下一个节点
3.简单
哪种操作对数组是 O(1),对单链表却是 O(n)?
- A访问下标为 i 的元素
- B删除头元素
- C读取第一个元素
- D在头部插入
4.中等
深度优先搜索(迭代版本)使用哪种数据结构?
- A仅哈希表
- B队列
- C堆
- D栈
5.中等
循环缓冲区(环形缓冲区)通常用于实现:
- A图的遍历
- B二叉搜索树
- C哈希函数
- D固定大小的队列
6.中等
用两个栈实现一个队列:入队时压入 "in" 栈,出队时从 "out" 栈弹出,"out" 栈为空时从 "in" 栈重新填充。每次操作的均摊代价是多少?
- AO(n)
- BO(log n)
- CO(1)
- DO(n²)
7.困难
红黑树必须满足哪条性质?
- A根节点必须是红色
- B从任一节点到其所有后代叶子的每条路径上,黑色节点的数量都相同
- C每个节点都必须是红色
- D每个红色节点的子节点必须是红色,因此红色节点总是沿着通向叶子的路径连成不间断的链
8.困难
在循环缓冲区中,front == rear 既可能表示空,也可能表示满。区分它们的一种常见方法是什么?
- A另外保存一个元素计数,或者始终留一个槽位不用
- B使缓冲区大小为 2 的幂
- C每当 front 等于 rear 时就始终清空缓冲区,使其状态为空
- D把 front 和 rear 存储在同一个变量中
答案
- 1. A · 通过哈希函数定位的键值对
- 2. B · 数据、指向下一个节点的指针和指向前一个节点的指针
- 3. A · 访问下标为 i 的元素
- 4. D · 栈
- 5. D · 固定大小的队列
- 6. C · O(1)
- 7. B · 从任一节点到其所有后代叶子的每条路径上,黑色节点的数量都相同
- 8. A · 另外保存一个元素计数,或者始终留一个槽位不用
完整分步解答:请在 examproblems.com 上练习本主题。