排序列表中的多个AVL树?

时间:2011-10-30 19:50:27

标签: avl-tree

我正在进行AVL树分配,我对它们的定义有一个快速的问题 - 我们给出了一个排序列表,我们必须在O(n)时间内从它生成一个AVL树。我已经完成了这个(感谢StackOverflow的其他帮助!),但是我的结果,虽然是有效的AVL树,但与提供的示例的结果不同。是否可以从同一个排序列表生成多个AVL树?

谢谢!

2 个答案:

答案 0 :(得分:3)

是。考虑只有两个节点的树的退化情况。在这种情况下,任一节点都可以是根节点,另一个节点可以是叶子节点。就总体平衡而言,这两者是等价的。

enter image description here

答案 1 :(得分:2)

是的,例如,这些是< 1,2,3,4,5>的两个可能的AVL树:

(2 1(3 4 5))

(4(2 1 3)5)

其中(a T1 T2)表示具有根a,左树T1和左右T2的树。