【问题标题】:What is the exact definition of a Weight balanced tree?权重平衡树的确切定义是什么?
【发布时间】:2015-08-28 05:26:35
【问题描述】:

对于权重平衡树有很多定义。我很困惑该遵循哪一个,并且很难理解给出的定义。

如果 weight[n.left] ≥ weight[n] 且 weight[n.right] ≥ 则节点是平衡的 重量[n]

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

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

谁能解释一下哪个是正确的?

【问题讨论】:

  • 这些定义有什么问题?我认为构建权重平衡树的动机是它保证了在例如排序算法中的一定性能。
  • 重量平衡树比高度平衡树有什么优势?
  • 你能给我正确和准确的重量平衡树定义吗?有证据
  • 你不能给出带有证明的定义,这是矛盾的。定义不需要证明
  • 好的。给我一个权重平衡树的定义和解释

标签: algorithm data-structures tree


【解决方案1】:

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

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

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

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

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

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

一个说法是:

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

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

【讨论】:

  • 你能解释一下这个说法吗?什么是 p(n)?
  • 什么说法? p 是一个节点的余额。
  • 那么p(n)的最优值应该是多少?或者 wbt 的根 p(n) 的值是多少?
  • 我改了答案,希望对你有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多