1.简单
图由什么组成?
- A只有根和叶子
- B由边(edge)连接的顶点(vertex,即节点)
- C只有键和哈希值
- D行和列
2.简单
哪种操作对数组是 O(1),对单链表却是 O(n)?
- A读取第一个元素
- B访问下标为 i 的元素
- C删除头元素
- D在头部插入
3.简单
树的根是什么?
- A值最大的节点
- B中间的任意节点
- C没有父节点的最顶端节点
- D没有子节点的节点
4.中等
循环缓冲区(环形缓冲区)通常用于实现:
- A二叉搜索树
- B图的遍历
- C哈希函数
- D固定大小的队列
5.中等
如何向二叉堆中插入一个新元素?
- A把它放在数组末尾,只要它违反堆性质就将其上浮(sift up)
- B从头重建整个堆
- C通过把所有更大的元素右移一位,将它插入到有序位置
- D把它放在根上,再将其下沉(sift down)
6.中等
对二叉搜索树进行中序遍历时,访问键的顺序是:
- A升序排列
- B层序
- C插入顺序
- D始终为降序
7.困难
对以邻接矩阵存储的、有 V 个顶点的图进行广度优先搜索,运行时间是多少?
- AO(V²)
- BO(V + E)
- CO(E log V)
- DO(V)
8.困难
与有序链表相比,跳表(skip list)的主要优势是什么?
- A利用多层前向指针,实现期望 O(log n) 的查找
- B它不占用额外内存
- C保证 O(1) 的查找,因为每个节点都存有指向其他所有节点的指针
- D它以无序方式存储键
答案
- 1. B · 由边(edge)连接的顶点(vertex,即节点)
- 2. B · 访问下标为 i 的元素
- 3. C · 没有父节点的最顶端节点
- 4. D · 固定大小的队列
- 5. A · 把它放在数组末尾,只要它违反堆性质就将其上浮(sift up)
- 6. A · 升序排列
- 7. A · O(V²)
- 8. A · 利用多层前向指针,实现期望 O(log n) 的查找
完整分步解答:请在 examproblems.com 上练习本主题。