B树 - 我怎么知道它的深度随着键的移除而变化

时间:2015-06-03 10:15:46

标签: data-structures b-tree

让k和2K是B树键,B.

如果删除密钥k,则假设B的深度减小。

有必要的情况是,如果我们删除密钥2k,B的深度也会减少吗?

我很难想象并解决这个问题,有人可以告诉我如何考虑并解决这个问题?

1 个答案:

答案 0 :(得分:1)

假设一个经典的B树约束每个节点的密钥数量:涉及根的节点合并的前提条件 - 因此高度的减少 - 是根只有一个密钥和正好两个子节点,两者都是它具有恰好最小允许键数。在树的更深层次的事态并不重要。

如果树的顶部看起来如上所述,则可以通过删除根唯一的键或其两个子项中的一个键来触发高度降低。删除可能是直接的,或者可能是在树中更深处删除后发生变化的结果。

在任何情况下都有很多星座,在相同的情况下,删除键2k不会触发高度降低。在删除密钥2k后,有许多条件可以防止高度降低:密钥位于“安全”节点(具有超过最小数量的密钥)或具有“安全”父级,存在“安全”兄弟姐妹在路径的某个地方,以便借贷成为可能,等等。

Web上的可视化资源在另一个主题中讨论: