平衡二叉树
平衡二叉树的定义
平衡二叉树是一棵空的二叉排序树,或者是具有下列性质的二叉排序树
- 根节点的左子树和右子树的深度最多相差1
- 根节点的左子树和右子树也是平衡二叉树
平衡因子
结点的平衡因子是该节点左子树和右子树的深度之差,如下图,每个结点里所注的数字是该节点的平衡因子
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6e60212e933245a54d5103dcc047901a.png#pic_center)
最小不平衡子树
最小不平衡子树是指在平衡二叉树的构造过程中,以距离插入结点最近的、且平衡因子绝对值大于1的结点为根的子树。
平衡化旋转
LL型
![LL型](https://i-blog.csdnimg.cn/blog_migrate/c9873cc9f9004755fe425e757106e9f0.png#pic_center)
RR型
![RR](https://i-blog.csdnimg.cn/blog_migrate/6e596004f1953a7764171573f17fe481.png#pic_center)
LR型
![LR](https://i-blog.csdnimg.cn/blog_migrate/ebecf747048c771eef70dc11d329e674.png#pic_center)
RL
![RL](https://i-blog.csdnimg.cn/blog_migrate/a5b96603fff30088e9684108936683ea.png#pic_center)
平衡树创建例子
按{20,35,40,15,30,25,38}创建平衡树
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d617447fb6ac1299e18c03b311a0bd68.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/980cd08d9cf7fa72bc9fd39f4d5cd14b.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/97e8255a0dc6a503a52013a0101a57e3.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2fe5a1d2c9f5c75709cab7f16d6b4c11.png#pic_center)