AVL树速览(附带源码)

游凡/AVL树icon-default.png?t=O83Ahttps://gitee.com/you-fan-a/avl-tree

一、什么是AVL树? 

一棵搜索二叉树的节点的左右子树高度差不超过一,这样的搜索二叉树就是AVL树。

二、AVL树的节点

在普通的二叉树节点的基础上,添加:parent指针(指向父亲节点)、_bf(平衡因子)。

*平衡因子(0,1,-1为平衡值)

一个节点的右子树高度-左子树高度的结果就是平衡因子值。

平衡因子的绝对值大于二,代表这棵树不平衡,需要优化。

三、优化操作

多说无用,看图。

1、右旋转(右单旋)

适用于最左边失衡

2、 左旋转(左单旋)

适用于最右边失衡

3、左右旋转(左右双旋)

适用于偏左失衡

55左边失衡,会让60为1。55右边失衡,会让50为-1。

4、右左旋转(右左双旋)

适用于偏右失衡

65左边失衡,会使70为1。65右边失衡,会使60为-1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值