平衡二叉树详解

本文详细介绍了平衡二叉树(AVL树)的概念,重点解析了其性质和保持平衡的关键——最小失衡子树。通过单向旋转(左旋、右旋)和双向旋转(先左旋再右旋、先右旋再左旋)的操作,阐述了如何在插入节点后调整树的平衡状态,确保平衡因子维持在-1、0或1之间。
摘要由CSDN通过智能技术生成

一、定义

  • 平衡二叉树(Balanced Binary Tree 或 Height-Banlanced Tree),又称AVL树

二、性质

  • 是一棵空树
  • 不是一棵空树,则具有以下性质:
    • 它的左子树和右子树都是平衡二叉树
    • 左子树和右子树的深度之差的绝对值不超过1
    • 若将二叉树上的平衡因子(BF)定义为该结点的左子树深度减去右子树深度,则平衡因子只能是-1、0或1

三、最小失衡子树

  • 在新插入的结点向上查找,以第一个平衡因子的绝对值超过1的结点为根的子树成为最小不平衡子树
  • 一棵失衡的树,是有可能有多棵子树同时失衡的。而这个时候,我们是要调整最小的不平衡子树,就能够将不平衡的树调整为平衡的树。

三、调整措施

1、单向旋转

  • 最小不平衡子树的根的平衡因子(BF)同它的孩子(左孩子或者右孩子)的平衡因子(BF)是同号的,所以仅需要一次旋转就可以了。

1.1 单向左旋平衡处理

  • 右子树右子节点:当新插入的结点为右子树的右子结点时,我们需要进行左旋
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值