解析平衡二叉树(AVL树)

平衡二叉树(AVL树)

平衡二叉树,又称AVL树,指的是每一个结点的左右子树的深度差不超过1,它是一种高度平衡的二叉排序树。至于它为什么又叫AVL树,则是取自两个发明平衡二叉树的科学家的名字:G. M. Adelson-Velsky和E. M. Landis。

平衡因子
我们将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor),所以平衡二叉树每一个结点的平衡因子只能是-1,0,1,只要二叉树上有一个结点的平衡因子的绝对值大于1,则这棵二叉树就不是平衡二叉树。

如何将不平衡的二叉树平衡
主要有四种调整方式:
LL型:在左子树的左孩子上插入元素;(右旋)
RR型:在右子树的右孩子上插入元素;(左旋)
LR型:在左子树的右孩子上插入元素;(先左旋再右旋)
RL型:在右子树的左孩子上插入元素;(先右旋再左旋)

LL型(右旋):
右旋,顾名思义,就是向右旋转一次,下图为最简洁的右旋:
在这里插入图片描述
下面是复杂一点的右旋:
在这里插入图片描述
RR型(左旋):
左旋,顾名思义,就是向左旋转一次,下图为最简洁的左旋:
在这里插入图片描述
下图是复杂一点的左旋:
在这里插入图片描述
LR型(先左旋再右旋),如下图所示:
在这里插入图片描述
RL型(先右旋再左旋),如下图所示:
在这里插入图片描述
图是自己画的,有点不清晰,请谅解~
如有问题欢迎指出~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值