从B树规则中删除

时间:2013-12-01 15:04:22

标签: data-structures binary-tree branching-and-merging b-tree

好吧,我正在学习考试,我对以下内容感到困惑。 下图是一个t = 3的B树,因此每个节点最多可以有2t-1个密钥和至少t-1个密钥。 我被要求删除key = 3。 在这种情况下,我无法理解为什么我需要与它的儿子一起加入根。我知道删除算法是防御性的,因为它从根开始并检查每个节点,因此它不需要再次去任何祖先。 但是,如果我不与其儿子一起加入根,那么哪条规则会被打破?

原始B树 B tree with t=3 (Order)

删除键3后 enter image description here

至于我,我只会删除键3,就是这样。

1 个答案:

答案 0 :(得分:1)

它不会破坏任何规则,算法只是在查找给定键时执行每个可能的节点合并。这对于确保在删除后不需要向上遍历树是必要的。 此外,树的高度会降低,这会加快以后的查找速度。

因此,这种行为是有效实施B树的算法决策。