Java 核心技术

AVL树

2020-10-27  本文已影响0人  我犟不过你

详细定义参考:
https://baike.baidu.com/item/AVL%E6%A0%91/10986648?fr=aladdin
数据结构学习网站:
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。

特点:

AVL树本质上还是一棵二叉搜索树:

1.本身首先是一棵二叉搜索树。
2.带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。

也就是说,AVL树,本质上是带了平衡功能的二叉查找树(二叉排序树,二叉搜索树)。

四种旋转方式:

从最下级节点起,开始旋转。
1、左单旋

image.png

2、右单旋

左单旋相反

3、先右旋再左旋

image.png

4、先左旋再右旋
参看上一个图

上一篇下一篇

猜你喜欢

热点阅读