【问题标题】:Multiple AVL Trees From Sorted List?排序列表中的多个AVL树?
【发布时间】:2011-10-31 03:58:51
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: avl-tree


    【解决方案1】:

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

    【讨论】:

    • 啊完美,这是我缺少的小概念。这些树有很多东西要学!非常感谢您的帮助!
    【解决方案2】:

    是的,例如,以下是 的两个可能的 AVL 树:

    (2 1 (3 4 5))

    (4 (2 1 3) 5)

    其中 (a T1 T2) 表示一棵树,其根为 a,左树 T1 和左右 T2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多