繁体   English   中英

AVL 树对高度的困惑

[英]AVL trees confusion about height

AVL 树示例

我对AVL树很困惑。 我的教科书说:“AVL 树是具有高度平衡属性的 BST,并且在插入或删除节点时重新平衡树的特定操作。本节讨论平衡属性;另一节讨论操作。BST 是高度平衡的,如果任何节点,该节点的左右子树的高度仅相差 0 或 1。” 他们的意思是左右还是什么? 是不是因为第二个,从 A 到 F 的高度是 2? 从 A 到 C 然后 C 到 E 然后 E 到 F。我很困惑,最初我以为它们是指上下高度。 这将使左侧的高度为三,而右侧的高度为二

简单地说,我们可以说如果特定节点的左侧最大边(很长的步行直到我们到达叶节点) l和右侧最大边r并且它们是否满足以下等式

| l - r  | <= 1

那么该节点是平衡的。 如果 BST 中的所有节点都是平衡的,则该 BST 是平衡的。

在您的 AVL 树示例中,

您可以检查的每个字母如下

  1. D --> |2 - 1| = 1 个平衡节点
  2. C --> |1 - 0| = 1 个平衡节点
  3. A --> |0 - 0| = 0 平衡节点
  4. E --> |0 - 0| = 0 平衡节点

在您的非 AVL 树示例中

  1. D --> |3 - 2| = 1 个平衡节点
  2. C --> |2 - 0| = 2 不平衡节点
  3. E --> |0 - 1| = 1 个平衡节点
  4. A --> |0 - 1| = 1 个平衡节点
  5. B --> |0 - 0| = 0 平衡节点
  6. F --> |0 - 0| = 0 平衡节点

当我们至少有一个不平衡的节点时,这意味着 BST 不平衡。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM