1.简单
图由什么组成?
- A只有根和叶子
- B只有键和哈希值
- C由边(edge)连接的顶点(vertex,即节点)
- D行和列
2.简单
什么是带权图?
- A有些顶点因为边更多而比其他顶点更重的图
- B边数多于顶点数的图
- C存储在磁盘上的图
- D每条边都有一个数值(如代价或距离)的图
3.简单
作为抽象数据类型,集合(set)的定义性特征是什么?
- A它只允许在一端访问
- B它按有序方式存储元素
- C它存储键值对
- D它存储元素且没有重复
4.中等
检查 "{[()]}" 中的括号是否匹配,使用哪种数据结构?
- A二叉搜索树
- B栈
- C哈希表
- D队列
5.中等
深度优先搜索(迭代版本)使用哪种数据结构?
- A队列
- B堆
- C栈
- D仅哈希表
6.中等
用两个栈实现一个队列:入队时压入 "in" 栈,出队时从 "out" 栈弹出,"out" 栈为空时从 "in" 栈重新填充。每次操作的均摊代价是多少?
- AO(n)
- BO(n²)
- CO(log n)
- DO(1)
7.困难
红黑树必须满足哪条性质?
- A从任一节点到其所有后代叶子的每条路径上,黑色节点的数量都相同
- B根节点必须是红色
- C每个节点都必须是红色
- D每个红色节点的子节点必须是红色,因此红色节点总是沿着通向叶子的路径连成不间断的链
8.困难
你必须用 O(k) 的内存从 n 个数的数据流中保留最小的 k 个值。哪种方法能在 O(n log k) 时间内完成?
- A一个保存全部 n 个值的最小堆,最后从中弹出 k 个最小值
- B一个大小为 k 的最大堆,当出现更小的值时替换其根
- C一个包含全部 n 个值的有序数组
- D一个保存最后 k 个值的 FIFO 队列
答案
- 1. C · 由边(edge)连接的顶点(vertex,即节点)
- 2. D · 每条边都有一个数值(如代价或距离)的图
- 3. D · 它存储元素且没有重复
- 4. B · 栈
- 5. C · 栈
- 6. D · O(1)
- 7. A · 从任一节点到其所有后代叶子的每条路径上,黑色节点的数量都相同
- 8. B · 一个大小为 k 的最大堆,当出现更小的值时替换其根
完整分步解答:请在 examproblems.com 上练习本主题。