数据结构:平衡二叉树

本文介绍了平衡二叉树,特别是AVL树的定义和特性,强调了平衡因子的重要性。当平衡因子的绝对值超过1时,通过四种旋转操作(LL型、RR型、RL型、LR型)来重新平衡树。详细解释了每种类型的调整方法,并附带了示例说明。
摘要由CSDN通过智能技术生成

解析平衡二叉树(AVL树)

一。平衡二叉树的定义

平衡二叉树也叫AVL树,它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和左子树的高度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。

二。平衡二叉树的结构

如基本概念所树,它具有一个左子树和一个左子树,且对于任意一个子树而言,左子树和右子树高度只差不超过1.

三。 平衡因子

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

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

LL型

**图1:**
图2:在这里插入图片描述
图3:在这里插入图片描述
如上图,LL型也为左左型,在被破坏节点的左边的左边插入而导致失衡,则为LL型,注意上面3个图,黑色的线表示它型号判断的路径,所有型号的判断只从被破坏节点开始判断两次,即不管你第三次新插入节点的位置在左还是在右,如图2和图3,一个左一个右,但是都为LL型,因为只判断两次。
LL型解决方案:以被破坏节点为基础进行右旋

RR型

图1:在这里插入图片描述
图2:在这里插入图片描述
图3:在这里插入图片描述
如上图,RR型也为右右型,在被破坏节点的右边的右边插入而导致失衡,则为RR型,注意上面3个图,黑色的线表示它型号判断的路径,与LL型相反。
LL型解决方案:以被破坏节点为基础进行左旋

RL型

如图在这里插入图片描述

如上图,RL型也为右左型,在被破坏节点的右边的左边插入而导致失衡,则为RL型,注意上图,黑色的线表示它型号判断的路径。
RL型解决方案:以被破坏节点R(右)节点为基础先进行一次R(右)旋,再以被破坏节点为基础进行左旋。
上图调整:
先以25为基础进行一次右旋。

在这里插入图片描述
再以20为基础进行一次右旋,可以看出经过两次旋转后,该树已经平衡在这里插入图片描述

LR型

如图:在这里插入图片描述
如上图,LR型也为左右型,在被破坏节点的左边的右边插入而导致失衡,则为LR型,注意上图,黑色的线表示它型号判断的路径。
LR型解决方案:以被破坏节点L(左)节点为基础先进行一次L(左)旋,再以被破坏节点为基础进行右旋。
上图调整:
先以20为基础进行一次左旋。

在这里插入图片描述
再以25为基础进行一次右旋,可以看出经过两次旋转后,该树已经平衡。
在这里插入图片描述
以上是我的全部理解 请大家多多指教!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值