Skip to content

2009年 408 数据结构 第 8 题

数据结构2009年选择题2分

题目

下列叙述中,不符合 m 阶 B 树定义要求的是()。

错因

A

误以为"根节点也得满足 ≥ ⌈m/2⌉ 棵子树"那条下限,进而觉得"最多 m 棵子树"和这条下限矛盾。但 B 树定义里根是特殊的——只要不是单节点情况下根至少 2 棵子树就行,最多 m 棵是普适上限。把"根的下限"和"非根的下限"混着记的人最容易在 A 上踩坑。

B

误以为 B 树叶子层会因为插入分裂而不齐——比如想象"分裂时新节点冒出来挂在某个深处"。实际上 B 树分裂会整棵树高度增 1(根分裂时上提一层),所有叶子同步下移,所以叶子永远在同一层。把"叶子同层"当成 B 树异常性质的人,常常没真正模拟过分裂过程。

C

误以为节点内关键字"只是用来索引,不需要严格有序"。实际上节点内的二分查找正是靠升序保证的——key₁ < key₂ < ... < keyₙ 既是定义也是查找前提,不能松。看到"升序或降序"的"或"字而怀疑的人,是被表述方式带偏了;真实定义只允许升序(或者全题统一降序),任何节点内的关键字都必须有序。

总解析

题目问哪个选项不符合 m 阶 B 树的定义:

  • A:根节点最多 m 棵子树 ✓(B 树定义:根节点有 2~m 棵子树;非根内部节点有 ⌈m/2⌉~m 棵子树)
  • B:所有叶节点在同一层 ✓(B 树是严格平衡的多路搜索树,所有失败查找都在同一层结束)
  • C:节点内关键字升序排列 ✓(每个节点里的 k 个关键字满足 K₁ < K₂ < … < Kₖ)
  • D:叶节点之间通过指针链接 ✗(这是 B+ 树 的特点,B+ 树的叶节点形成有序链表便于范围查询;B 树的叶节点之间没有指针链接)

答案 D

最后更新:

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

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