【发布时间】:2015-12-22 18:05:05
【问题描述】:
AVL 树似乎有四种转换:Left-Left、Left-Right、Right-Left 和 Right-Right。但是,似乎也可能存在其他情况。我将此提交为左平衡:
左旋和右旋都不能平衡这棵树。使用什么算法来平衡它?
【问题讨论】:
-
AV&L 没有没有给出一个过程来平衡任何有序的二叉树到一个具有“最多一次双重旋转”的AVL树。他们介绍了如何在插入单个节点后使用三个状态之一/每个节点两个额外位来重新平衡二叉树。这被扩展到其他操作。上面显示的三个“左”树都不是将单个节点添加到有效 AVL 树的结果,每个都可能是由于删除了一个值得标签大于 50 的节点。也就是说,什么(就高度而言)在“最后两棵左树”之间标记为 40 和 45 的节点是否不同?
标签: algorithm data-structures avl-tree tree-rotation