下列叙述中,不符合 m 阶 B 树定义要求的是( )。
目标
通过 2009~2025 年的 18 道 408 选择题,检查自己能否准确处理 B 树与 B+ 树的结构边界、插入删除调整,以及散列表冲突处理与平均查找长度。
完成后应能:
- 根据 m 阶 B 树的结点上下界判断合法结构,推演插入与删除;
- 区分 B 树和 B+ 树的查找终点、叶结点链接和应用场景;
- 构造开放定址散列表,分别计算成功与失败 ASL;
- 说明散列函数、冲突策略与装填因子怎样影响查找效率。
前置知识
建议依次阅读:
环境、输入与预期输出
- 环境:任意现代浏览器;建议准备纸笔,用于画 B 树和散列表。
- 输入:按年份排列的 18 道单项选择题,每题恰有四个选项。
- 预期输出:一份独立作答记录,以及每道错题的错误原因和正确推理。
作答方法
- 阅读题面后点击一个选项,先写下选择依据;
- 点击"提交答案",再核对对错、正确答案和题解;
- 做错的题点击"重新作答"后再次推导,直到能说明其余选项为什么不成立;
- 完成全部题目后再使用页面末尾的答案总览复核,避免只记答案字母。
选择题
search-408-2011-q09为提高哈希表的查找效率,可以采取的正确措施是( )。
I. 增大装填因子
II. 设计冲突少的哈希函数
III. 处理冲突时避免产生堆积现象
search-408-2012-q09已知一棵 3 阶 B 树如下,每个方括号表示一个结点:
[45]
/ \
[17,35] [55,65]
/ | \ / | \
[10] [21] [37] [47] [60,62] [78]
删除关键字 78 得到一棵新 B 树,其最右叶结点中的关键字是( )。
search-408-2013-q10在一棵高度为 2 的 5 阶 B 树中,所含关键字的个数最少是( )。题目把根结点计为第 1 层。
search-408-2014-q08用散列方法处理冲突时可能出现堆积现象。下列选项中,会受堆积现象直接影响的是( )。
search-408-2014-q09在一棵具有 15 个关键字的 4 阶 B 树中,含关键字的结点个数最多是( )。
search-408-2016-q10B+ 树不同于 B 树的特点之一是( )。
search-408-2017-q09下列应用中,适合使用 B+ 树的是( )。
search-408-2018-q08高度为 5 的 3 阶 B 树含有的关键字个数至少是( )。题目把根结点计为第 1 层。
search-408-2018-q09现有长度为 7、初始为空的散列表 HT,散列函数
search-408-2019-q08现有长度为 11 且初始为空的散列表 HT,散列函数为
search-408-2020-q10依次将关键字 5、6、9、13、8、2、12、15 插入初始为空的 4 阶 B 树后,根结点中包含的关键字是( )。
search-408-2022-q085 阶 B 树 T 的根和五个叶孩子如下:
根:[60, 90, 260, 350]
孩子:[30,50] | [70,80,85] | [100,110] | [280,300] | [400,500]
删除关键字 260 并完成必要调整后得到 T1。下列选项中,不可能是 T1 根结点关键字序列的是( )。
search-408-2022-q09下列因素中,影响散列方法平均查找长度的是( )。
I. 装填因子
II. 散列函数
III. 冲突解决策略
search-408-2023-q07下列关于非空 B 树的叙述中,正确的是( )。
I. 插入操作可能增加树的高度
II. 删除操作一定会导致叶结点的变化
III. 查找某关键字一定要查找到叶结点
IV. 插入的新关键字最终位于叶结点中
search-408-2023-q09现有长度为 5、初始为空的散列表 HT,散列函数
search-408-2025-q08给定 7 个不同的关键字,能够构成不同 4 阶 B 树的个数为( )。这里只区分结点中关键字数量形成的合法树形。
search-408-2025-q09下列关于散列法处理冲突的叙述中,正确的是( )。
答案总览(建议完成全部题目后查看)
- 第 1 题:D
- 第 2 题:D
- 第 3 题:D
- 第 4 题:A
- 第 5 题:D
- 第 6 题:D
- 第 7 题:A
- 第 8 题:B
- 第 9 题:B
- 第 10 题:C
- 第 11 题:C
- 第 12 题:B
- 第 13 题:D
- 第 14 题:D
- 第 15 题:B
- 第 16 题:C
- 第 17 题:C
- 第 18 题:A
完成清单
思考题
- B 树与 B+ 树在"查找终点"和"叶结点链接"上的差别,如何决定它们的应用场景?
- 装填因子、散列函数、冲突解决策略三者各自怎样影响平均查找长度?
- 线性探测的"堆积"与平方探测的"不一定覆盖全表"分别意味着什么?
复盘
- 我是否在计算失败 ASL 时误用了成功查找的比较口径?
- B 树的借键与合并,我是否清楚什么时候上移、什么时候下移?
- 哪道题的干扰项利用了"B 树与 B+ 树性质混记"的常见误区?