平衡二叉树

别说谁变了你拦得住时间么 提交于 2019-12-17 02:04:28

定义

平衡二叉树:或者是一棵空的二叉排序树,或者是具有下列性质的二叉排序树:
⑴ 根结点的左子树和右子树的深度最多相差1;
⑵ 根结点的左子树和右子树也都是平衡二叉树。

平衡因子: 结点的平衡因子是该结点的左子树的深度与右子树的深度之差。
结点的平衡因子=HL-HR
在平衡树中,结点的平衡因子可以是1,0,-1。

最小不平衡子树: 在平衡二叉树的构造过程中,以距离插入结点最近的、且平衡因子的绝对值大于1的结点为根的子树。

构造平衡二叉树

基本思想
在构造二叉排序树的过程中,每插入一个结点时,首先检查是否因插入而破坏了树的平衡性,
若是,
则找出最小不平衡子树,
在保持二叉排序树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。

平衡调整
设结点A为最小不平衡子树的根结点,对该子树进行平衡调整归纳起来有以下四种情况:

  1. LL型
  2. RR型
  3. LR型
  4. RL型

1.LL型&&RR型
单次旋转
在这里插入图片描述

2.LR型&RL型
两次旋转
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!