【问题标题】:Binary Search Tree? Algorithm [closed]二叉搜索树?算法[关闭]
【发布时间】:2016-05-15 10:49:37
【问题描述】:

有谁知道如何制作一种将二叉搜索树转换为 AVL 树的算法,是的,是对其进行转换而不是制作另一棵树(因此只能使用旋转来完成)而不是使用 DSW 技术...在 C 语言中。这里棘手的部分是有很多情况,因为二叉搜索树可能以各种方式不平衡,并且有 4 种类型的旋转。

【问题讨论】:

  • 做完功课,我要不要熨一下你的衬衫师傅?
  • 好吧,既然你使用 C,你可以重置树,只留下它的根,然后重新使用它作为结果,而不是创建一个指向新树的新指针。一种可能的解决方案是临时存储树的所有值(使用您希望的任何方式),清除树,然后使用您希望的任何自动平衡技术添加项目。这实际上就像 DSW。 :)
  • @androiddeveloper true
  • @BandanaKoper 我现在想到了一个可能的解决方案,但是自从我很久以前学习过这个主题以来,我可能会错:您可以遍历树并使用与您选择的任何算法。问题是如何最好地遍历,以及它是否真的有效。您可以通过检查每个叶子的级别来仅平衡所需的叶子。我认为最简单的方法确实像 DSW...

标签: search


【解决方案1】:

我相信 DSW 技术可以就地完成所有工作(没有内存分配),如果这正是您所寻找的。 否则,您能否从 AVL 连续运行修复算法,直到树不再有变化?这是许多可能适用于此的算法中使用的技术。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2015-12-05
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多