二叉搜索树的平衡–AVL树和树的旋转(图解)
二叉搜索树只有保持平衡时其查找效率才会高
要保持二叉搜索树的平衡不是一件易事。不过还是有一些非常经典的办法可以做到,其中最好的方法就是将二叉搜索树实现为AVL树。
AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文 “An algorithm for the organization of information” 中发表了它。AVL树是一种特殊类型的二叉树,它的每个结点都保存一份额外的信息:结点的平衡因子。
结点的平衡因子 = 左子树的高度 – 右子树的高度
插入和删除操作都会导致AVL树的自我调整(自我平衡),使得所有结点的平衡因子保持为+1、-1或0。
当子树的根结点的平衡因子为+1时,它是左倾斜的(left-heavy)。
当子树的根结点的平衡因子为 -1时,它是右倾斜的(right-heavy)。
一颗子树的根结点的平衡因子就代表该子树的平衡性。
保持所有子树几乎都处于平衡状态,AVL树在总体上就能够基本保持平衡。
转载地址:https://www.cnblogs.com/idreamo/p/8308336.html
记录文章,以便后续学习使用。