插入和从B树中删除

时间:2013-07-02 09:38:21

标签: data-structures b-tree

我遇到过这个问题并且无法回答。

给定一个9阶的B树,4个级别将插入,并且在删除新项目之后x将始终将树带到其第一个结构中?

删除和插入现有项目x是否总是将树带到其第一个结构? 证明它。

到目前为止,我试图反驳它,但一直无法做到。 现在我老实说找不到答案,我不是要求一个完整的证据来说明如何证明它会让我满意。

1 个答案:

答案 0 :(得分:0)

答案显然取决于插入和删除方法的实现,但简而言之:否。

我不会给你一个完整的证明(因为你没有要求它,因为我太懒了)但总的想法应该是通常当你删除一个节点时,对面的最内层节点一边(相对于父母)取而代之。因此,在该节点存在的任何场景中,它都会向上移动。它还意味着节点不是叶子,这是一个问题,因为插入通常将新节点作为叶子放在树上。因此,只有当相对侧(相对于父级)的最内部节点为空时,才会保持原始结构。

This is the deletion I'm referring to。如果你删除2并重新插入它,那就是反证。