Skip to content

2020年 408 数据结构 第 10 题

数据结构2020年选择题2分

题目

依次将关键字 插入初始为空的 阶 B 树后,根结点中包含的关键字是( )。

错因

A

可能是错按" 阶 B 树(每节点最多 个关键字)"处理,让插入过程一直不分裂,最后凭直觉挑了"中位数附近"的 。或者把分裂规则记成"上提中位数 "且只发生过一次分裂——但本题至少发生 次分裂,结果不会只有 个关键字。

C

第一次分裂时上提了错的关键字。例如把 分裂时上提 (其实应当上提 号位的 ),导致后续整体形态偏移,最后根错算为

D

类似地,分裂时把上提位置算错,特别是第二次插入 触发分裂时把 一起上提到根。其实第二次分裂上提的应当是 留在分裂后的右子节点里。

总解析

4 阶 B 树规则(408 王道标准):

  • 每个非根节点关键字数 ,即每节点 个关键字、 个孩子。
  • 插入:找到对应叶子节点插入,若插入后关键字数 (即 )则分裂:把第 号位的关键字上提到父节点,左侧关键字留在原节点,右侧关键字成为新节点。

逐步插入:

插入操作前操作后
15
26
39(满 3 个,未超)
413插入后 分裂:上提 ,左 ,右 。形态: — 左 ,右
588 > 6 走右 ,8 < 9 → 插首位(满 3 个,未超)
622 < 6 走左
71212 > 6 走右 ,9 < 12 < 13分裂:上提 ,左 ,右 。根变 ,三孩子
81515 > 9 走最右 最右 (满 3 个,未超)

最终 B 树形态:

              [ 6 , 9 ]
             /    |    \
        [2,5]   [8]   [12,13,15]

根结点关键字 =

最终答案是 B(6, 9)

4 阶 B 树关键技巧:① " 阶"指最大孩子数 阶 = 至多 孩子 = 至多 关键字;② 分裂上提的位置是 号(从 数起);③ 插入时一定先走到叶子层,再判分裂——别在中间节点直接放。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数