AVL树中叶子之间的高度差异

时间:2015-03-10 13:26:34

标签: data-structures avl-tree

AVL树中任何两个叶子之间的最大差异是什么?如果我举一个例子,我的树变得不平衡,如果高度差大于2(对于任何两片叶子),但答案是差异可以是任何值。我真的不明白,这是怎么可能的。任何人都可以用例子解释一下吗?

2 个答案:

答案 0 :(得分:4)

任何两片叶子的水平差异可以是任何值! AVL的定义仅描述了来自一个节点的两个子树的高度差。 因此,您需要填充具有相同高度的子树,然后添加新节点以创建单个节点差异。但没有人说这个子树不包含一些具有完全相同定义的子树。当然,树是自平衡的,但如果我们准确到不接触它的平衡,那么我们可以在一些叶子之间创造任何高度差。

第3级的叶子24和第6级的叶子10的示例: AVL-tree

答案 1 :(得分:0)

根据this Wikipedia article中的解释,AVL树中的平衡操作成功地旨在重新排列树,使得任意两个叶子的高度不超过一。这是数据结构的关键属性,它使节点的检索有效(即树的节点数量的对数,因为在最坏的情况下遍历从根到叶子的路径)。