【数据结构 | 平衡二叉树】失衡时如何调整

ops/2024/10/19 12:37:55/

文章目录

  • 平衡二叉树AVL树)
  • 平衡二叉树的调整?
    • 1. 左旋
    • 2. 右旋
  • 四种失衡情况
    • 1. LL型
    • 2. LR型
    • 3. RR型
    • 4. RL型
  • 插入节点后,若多个祖先结点失衡?
  • 删除节点后,调整?

在这里插入图片描述

AVL_3">平衡二叉树AVL树)

  • 前提:二叉搜索树
  • 所有结点的 (左子树高度 - 右子树高度)的绝对值 <= 1
    左子树高度 - 右子树高度 —— 平衡因子
  • 插入、查找、构建、删除过程与二叉搜索树一致,但是失衡的时候需要调整

平衡二叉树的调整?

1. 左旋

  • 将失衡结点左旋(逆时针旋转),发生冲突时 —— 冲突的左孩变成右孩
    在这里插入图片描述
    在这里插入图片描述

2. 右旋

  • 将失衡结点右旋(顺时针旋转),发生冲突时 ——冲突的右孩变左孩
    在这里插入图片描述
    在这里插入图片描述

四种失衡情况

1. LL型

  • 失衡结点平衡因子 = 2,失衡结点的左孩子的平衡因子 = 1
  • 失衡结点右旋。
    在这里插入图片描述

2. LR型

  • 失衡结点平衡因子 = 2,失衡结点的左孩子的平衡因子 = -1
  • 失衡节点左孩子先左旋,然后失衡结点再右旋。
    在这里插入图片描述

3. RR型

  • 失衡结点平衡因子= -2,失衡结点的右孩子的平衡因子 = -1
  • 失衡节点左旋。
    在这里插入图片描述

4. RL型

  • 失衡结点平衡因子= -2,失衡结点的右孩子的平衡因子 = 1
  • 失衡结点的右孩子先右旋,失衡结点再左旋。
    在这里插入图片描述

插入节点后,若多个祖先结点失衡?

  • 只需要调整距离插入结点最近的失衡结点,其他失衡结点会自然平衡
    在这里插入图片描述

删除节点后,调整?

  • 需要依次对每个祖先进行检查并调整

可以看这个视频来容易理解:平衡二叉树(AVL树)


http://www.ppmy.cn/ops/126722.html

相关文章

app评价弹窗制作

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;app评价弹窗制作 主要内容&#xff1a;弹窗基本组成、显示与隐藏、多元件交互、情形应用 应用场景&#xff1a;app评价类弹窗、其他选项类弹窗均适…

Spring Boot框架下的电影评论网站实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

linux搭建elasticsearch

0、安装前检查Java 确保java已安装&#xff0c;且在OpenJDK 8以上 java -version 1、安装Elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.1-linux-x86_64.tar.gz2、复制Elasticsearch 到/etc目录 cp -r /home/elasticsearch…

TikTok账号策略:IP和网络环境的要求分析

在当今社交媒体迅猛发展的时代&#xff0c;TikTok作为一款短视频平台&#xff0c;凭借其独特的算法和庞大的用户基础&#xff0c;吸引了越来越多的内容创作者和营销人员。成功地运营一个TikTok账号&#xff0c;除了优质的内容创作外&#xff0c;良好的IP和网络环境也至关重要。…

Flume面试整理-常见的Source类型

Apache Flume提供了多种Source(源)类型,用于从不同的数据源收集数据。这些Source类型可以灵活配置,以满足各种数据收集需求。以下是Flume中常见的Source类型及其特点: 1. Avro Source ● 描述:Avro Source用于接收来自其他Flume Agent或应用程序的数据,这些数据通常以Av…

leetcode hot100 之【LeetCode 42. 接雨水】 java实现

LeetCode 42. 接雨水 题目描述 给定一个非负整数数组 height 表示柱状图中每个柱子的高度&#xff0c;请你计算按此排列的柱状图能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面的柱状图可以…

基于SSM+微信小程序的宠物管理系统1

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的宠物管理系统实现了管理员、店主、用户。 管理员实现了店主管理、附件宠物店、管理员、用户管理、猫狗查询、猫狗宠物社区、商品信息等、店主实现了商品信息管理。用户…

排序算法学习

一、引言 排序算法在计算机科学中占据着至关重要的地位。无论是处理数据、搜索算法还是优化程序性能&#xff0c;都离不开高效的排序。不同的排序算法有着各自的特点和适用场景&#xff0c;了解它们的原理、时间和空间复杂度以及代码实现&#xff0c;有助于我们在实际编程中选…