如何将两个B树((d,2d)树)与另一个节点x连接

时间:2018-08-15 11:39:55

标签: data-structures b-tree

假定给出2个B树T1,T2。也是键“ x”。我知道每棵树的叶子都有2d-1至4d-1个键,而且我知道T1中的所有键都大于x,而T2中的所有键都小于x。 我想做的是从这些树中创建一个B树。在尝试了一种天真的方法之后,将所有键插入较小的树中之后,我尝试执行以下操作:

  1. 检查height(T1)> height(T2)(让我们假设它是正确的。如果为假,则它是对称的。
  2. 在T1上,我将一直向下移动到height(T2)+1,然后在该高度的最左侧节点中插入x作为最左侧的键。
  3. 我插入T2作为x的左儿子。

我知道插入x并不是问题,因为我可能需要进行一系列拆分,直到回到根为止。我的解决方案的问题在于,T2的根中可能只有1个键(或小于d-1的任何数量的键),这破坏了内部节点的B树规则。 还有其他解决方案吗?

0 个答案:

没有答案