1.简单
静态数组与动态数组的主要区别是什么?
- A动态数组可以通过移到更大的内存块来增长
- B动态数组把元素存储在链接的节点中,因此可以一次增长一个
- C静态数组只能存储数字
- D静态数组的下标访问更慢
2.简单
在图的邻接表表示中,每个顶点存储什么?
- A其相邻顶点的列表
- B一行 V 个布尔值
- C到其他每个顶点的最短路径
- D图中边的总数
3.简单
在二叉搜索树中,某节点左子树中的值:
- A大于该节点的值
- B等于该节点的值
- C顺序随机
- D小于该节点的值
4.中等
对二叉搜索树进行中序遍历时,访问键的顺序是:
- A插入顺序
- B层序
- C始终为降序
- D升序排列
5.中等
哈希表在负载因子超过阈值后进行再哈希(rehash)时会发生什么?
- A分配一个更大的表,并把每个键重新插入
- B只把发生冲突的键移到表末尾的新溢出链表中
- C对现有的键原地排序
- D删除最旧的键以腾出空间
6.中等
运行中的程序使用哪种数据结构来记录活动的函数调用及其局部变量?
- A由函数组成的哈希表
- B堆内存队列
- C调用栈
- D由栈帧组成的二叉搜索树
7.困难
要使哈希表正确工作,哈希与相等性必须遵守哪条规则?
- A哈希值相等意味着键相等
- B哈希值必须是素数
- C相等的键必须具有相等的哈希值
- D不同的键必须具有不同的哈希值
8.困难
原地反转一个单链表的时间和额外空间代价各是多少?
- AO(1) 时间和 O(1) 额外空间
- BO(n log n) 时间和 O(1) 额外空间
- CO(n) 时间和 O(1) 额外空间
- DO(n) 时间和 O(n) 额外空间
答案
- 1. A · 动态数组可以通过移到更大的内存块来增长
- 2. A · 其相邻顶点的列表
- 3. D · 小于该节点的值
- 4. D · 升序排列
- 5. A · 分配一个更大的表,并把每个键重新插入
- 6. C · 调用栈
- 7. C · 相等的键必须具有相等的哈希值
- 8. C · O(n) 时间和 O(1) 额外空间
完整分步解答:请在 examproblems.com 上练习本主题。