平衡二叉树——调整变换规则

news/2024/7/5 7:53:56

平衡二叉树:

由来:为了解决二叉树在某些情况下形成链表。

特点:平衡因子小于2,进行平衡调整。

平衡因子:结点的左孩子-右孩子的绝对值。

平衡调整策略:LL型 LR型 RR型 RL型。

LL型调整规则(继承左结点的左孩子影响了平衡):将不平衡节点的左孩子提升为新的根节点;将原来的根节点(指不平衡结点),降为新的根节点的右孩子;各子树按大小关系连接。

RR型调整规则(继承右结点的右孩子影响了平衡):将不平衡节点的右孩子提升为新的根节点;原根结点变成新的根结点的左孩子;各子树按大小关系相接。

LR型调整规则(不平衡结点的左结点的右子树影响平衡):先将不平衡的结点的左子树的右子树变为不平衡结点的左子树的父结点;旋转的结果是LL型旋转,按照原不平衡节点LL型进行旋转。

RL型调整规则(不平衡节点的右结点的左子树影响了平衡):先将不平衡结点右子树的左子树变为不平衡结点的右子树的父结点;旋转的结果是一个RR型旋转,按照原不平衡节点RR型旋转。
下面是四种变换典型的案例:
请添加图片描述

请添加图片描述


http://www.niftyadmin.cn/n/3369350.html

相关文章

【nginx】nginx的介绍

Nginx 反向代理初印象 Nginx (“engine x”) 是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网…

动态规划-使用最小花费爬楼梯为例

动态规划-使用最小花费爬楼梯为例 题目描述数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。 每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就…

组合博弈知识汇总(算法)

原帖地址:http://www.wutianqi.com/?p1081以下是我从网上收集的关于组合博弈的资料汇总: 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取…

Carla与Ros联合仿真教学与踩坑经历

Carla与Ros联合仿真教学与踩坑经历 前言 本人需要用到carla进行仿真,做实验,研究了这个平台几个月。 需要注意的是,本人没有保留所有的ros包,而是选择一些进行使用,其他大家可以进行扩展。 carla0.9.5版本和carla0.…

力扣-跳跃游戏Ⅱ

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 public int jump(int[] nums) {int length nu…

八大排序——归并排序

归并排序(Merge sort) 定义 归并排序时建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。 作为一种典型的分而治之思想的算法应用,归并排序的实现有两种方法: 自上而下的递归(所有…

WINCE驱动程序编写者指南(转载)

WINCE驱动程序编写者指南在CE中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的流接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的流接口的驱动。对于这样一类驱动程序,我们只需要按一…

vs 2008调试DLL的方法(转载)

对DLL的调试是一个热门话题,上网搜索了一下,发现很多相关的信息,但几乎全部是没有进行验证的摘抄,很鄙视这种行为。所以我在浏览的一些国外的网站后,结合自己的经验写下我在vs 2008编译平台上调试DLL的方法。按照我描述…