权重平衡树的确切定义是什么?

时间:2015-08-28 05:26:35

标签: algorithm data-structures tree

对于重量平衡树,给出了许多定义。我很困惑哪一个要遵循,很难理解给定的定义。

  

如果权重[n.left]≥weight[n]且权重[n.right]≥,则节点平衡   重量[N]

     

左子树和右子树中的节点数必须相等

     

权重平衡树是一个二叉树,其中对于每个节点,   左子树中的节点数量至少为一半且最多   右子树中节点数量的两倍。

有人可以解释一下哪个是正确的吗?

1 个答案:

答案 0 :(得分:2)

据我所知,wbt中节点p()的余额n

给出
p(n) = s(n.l)/s(n) = 1 - s(n.r)/s(n)

其中s是后代叶子的数量。您现在可以使用旋转和双旋转操作开始重新平衡树。现在,如果你有一个偶数个叶子,那么声明是正确的,对于每个节点,左边和右边节点中的子节点数是相等的。这只适用于平衡的wbt。这并不总是可行的,如果你有6个叶子,你如何平衡它以使该陈述成立?

重新平衡降低了wbt的高度。

示例:您在左侧节点中有一百万个叶子,在右侧节点中有几个叶子。您现在可以开始旋转叶子,以便左子树中的叶子数为

  

至少一半,最多两倍于右子树中的节点数

一个陈述是:

  

如果对于每个节点,树具有有界平衡 a

a <= p(n) <= 1-a