数据结构 平衡二叉排序树有话说

本文介绍了平衡二叉排序树(AVL树),阐述其性质,即左右子树高度差绝对值不超1且左右子树也是AVL树,指出其查询效率高于普通二叉排序树。还说明了平衡因子的概念及计算方法,最后讲解了恢复失衡AVL树的LR、RL等类型的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 平衡二叉排序树又称AVL树

  • 平衡二叉排序树性质

① 左右子树的高度之差的绝对值小于等于1。
② 左右子树也是平衡二叉排序树。

平衡二叉排序树比普通的二叉排序树查询效率要高。

  • 平衡因子:结点的左子树深度与右子树深度之差。对于一棵平衡二叉排序树,其所有结点的平衡因子只能是-1、0或1。

  • 求平衡二叉排序树各结点因子

在这里插入图片描述
每个结点旁边的数字就是每个结点的平衡因子。

计算过程:
如A结点,它的左右子树是根节点为B和C的子树
对于根节点为B的子树,树的深度是1,对于C,深度是2,则可以得到A结点的平衡因子为 1-2=-1。其他结点以此类推。

  • 如何恢复失去平衡的平衡二叉排序树

    1️⃣ LR型
    现将B改为C的左孩子,而C原来的左孩子改为B的右孩子;然后将A改为C的右孩子,C原来的右孩子改为A的左孩子。这相当于对B做了一次逆时针旋转,对A做一次顺时针旋转。
    在这里插入图片描述

    2️⃣ RL型
    现将B改为C的右孩子,而C原来的右孩子改为B的左孩子;然后将A改为C的左孩子,C原来的左孩子改为A的右孩子。这相当于对B做了一次顺时针旋转,对A做一次逆时针旋转。
    在这里插入图片描述
    RR型,LL型以此类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值