【发布时间】:2016-05-15 10:49:37
【问题描述】:
有谁知道如何制作一种将二叉搜索树转换为 AVL 树的算法,是的,是对其进行转换而不是制作另一棵树(因此只能使用旋转来完成)而不是使用 DSW 技术...在 C 语言中。这里棘手的部分是有很多情况,因为二叉搜索树可能以各种方式不平衡,并且有 4 种类型的旋转。
【问题讨论】:
-
做完功课,我要不要熨一下你的衬衫师傅?
-
好吧,既然你使用 C,你可以重置树,只留下它的根,然后重新使用它作为结果,而不是创建一个指向新树的新指针。一种可能的解决方案是临时存储树的所有值(使用您希望的任何方式),清除树,然后使用您希望的任何自动平衡技术添加项目。这实际上就像 DSW。 :)
-
@androiddeveloper true
-
@BandanaKoper 我现在想到了一个可能的解决方案,但是自从我很久以前学习过这个主题以来,我可能会错:您可以遍历树并使用与您选择的任何算法。问题是如何最好地遍历,以及它是否真的有效。您可以通过检查每个叶子的级别来仅平衡所需的叶子。我认为最简单的方法确实像 DSW...
标签: search