平衡二叉树的插入,删除以及平衡调整。

news/2024/12/29 9:36:22/

一,平衡二叉树插入失衡情况及解决方案

由于各种的插入导致的不平衡,每次调整都是最小不平衡子树。
LL:由于在结点A的 左孩子的左子树 插入结点导致失衡。

  右单旋:①将A的 左孩子B 向右上旋转 代替A成为根节点
      ②将A结点 向右下旋转 成为B的 右子树 的根节点
      ③B的原来 右子树 成为A的 左子树
在这里插入图片描述

RR:由于在结点A的 右孩子的右子树 插入结点导致失衡。

  左单旋:①将A的 右孩子B 向左上旋转 代替A成为根节点
      ②将A结点 左下旋转 成为B的 左子树 的根节点
      ③B的原来 左子树 成为A的 右子树
在这里插入图片描述

LR:由于在结点A的 左孩子的右子树 插入结点导致失衡。

先左旋后右旋:先让A的左孩子B的右子树的根节点C左上旋提升到B位置,在让C右上旋提升到A位置。
在这里插入图片描述

RL:由于在结点A的 右孩子的左子树 插入结点导致失衡。

先右旋后左旋:先让A的右孩子B的左子树的根节点C右上旋提升到B位置,在让C左上旋提升到A位置。
在这里插入图片描述

二,平衡二叉树删除步骤

①删除结点(方法同二叉排序树)
  1.如果删除的是叶子结点,直接删除。
  2.如果删除的结点只有一颗子树,则用子树顶替删除位置。
  3.如果删除的结点有两颗子树,则直接前驱(或直接后继)结点顶替,并转为对直接前驱(或直接后继)的删除。
②一路向北(上)找到最小不平衡子树,找不到就结束。
③找到最小不平衡子树下,“个头最大”的儿子和孙子。
④根据孙子位置,调整平衡(孙子相对于爷位置LL,RR,LR,RL)。
  1.如果孙子在LL,儿子右单旋。
  2.如果孙子在RR,儿子左单旋。
  3.如果孙子在LR,孙子先左旋后右旋。
  4.如果孙子在RL,孙子先右旋后左旋。
⑤如果不平衡向上传导,继续②。
在这里插入图片描述

三,平衡二叉树删除实例

1.RR型

在这里插入图片描述

1.RL型

在这里插入图片描述

1.平衡向上传导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/93950.html

相关文章

myeclipse开发工具介绍

MyEclipse是一款基于Eclipse平台的综合开发环境(IDE),尤其擅长于JavaWeb开发和企业级应用开发。MyEclipse由美国Genuitec公司推出,致力于提高开发人员的效率和开发质量,是Java Web、嵌入式和移动应用程序开发的首选开发…

【计算机网络 - 第四章】网络层:数据平面

目录 一、网络层概述 1、主要作用 2、控制平面方法 3、网络层提供的两种服务 二、路由器工作原理 1、路由器总体结构 2、输入、输出端口处理 (1)输入端口 (2)输出端口 3、交换 (1)经内存交换 &…

Pycharm中配置不了conda解释器

我安装的是pytorch的CPU版本,在Pycharm中配置conda环境时,每次添加完都不显示,搜遍了很多方法都没用。最后成功解决,这里将一些方法进行总结,方便大家解决问题。 我的情况和解决 问题情况以及显示 1.在Pycharm的日志…

Java开发 - 你不知道的JVM优化详解

前言 代码上的优化达到一定程度,再想提高系统的性能就很难了,这时候,优秀的程序猿往往会从JVM入手来进行系统的优化。但话说回来,JVM方面的优化也是比较危险的,如果单单从测试服务器来优化JVM是没有太大的意义的&…

DataNode启动报错Failed to add storage directory [DISK]file:【已解决】

Failed to add storage directory [DISK]file hadoop启动后缺少DataNode进程报错out文件报错log文件解决 hadoop启动后缺少DataNode进程 jps查看hadoop进程缺少DataNode的进程 报错out文件 查看DataNode的out日志 DataNode启动报错 ulimit -a for user root core file size…

人工智能AI 计算平台介绍

人工智能AI计算平台介绍 产品及服务: 标准模块开源 核心模块及服务收费 资源齐全 服务支持 产品使用者: 自行扩充组件 快速二次开发 轻松搭建企业级 数据挖掘应用 自…

springboot+vue大学生租房系统(java项目源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的大学生租房系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风歌…

深度学习训练营之Densenet网络

深度学习训练营 原文链接环境介绍前言设计理念网络结构实验结果和讨论pytorch实现DenseNet附录 原文链接 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:365天深度学习训练营-第J3周:Densenet网络学习&…