2024考研计算机408--平衡二叉树旋转记忆技巧

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

2024考研计算机408

链接:https://pan.baidu.com/s/152XLyH64TlcLXwmU-zlAsQ?pwd=r7zf 
提取码:r7zf 

接下来,我们总结一下平衡二叉树的旋转技巧。在四零八考试中,平衡二叉树基本没有可能考察代码。所以我们对于旋转的掌握,只需要学会做题即可。平衡二叉树的旋转有多种方式,但是我们可以通过一些技巧来理解它。这样可以减轻我们的记忆负担。好,首先看一下平衡二叉树旋转的时机。当插入和删除之后,这棵树有可能已经不平衡。所以这个时候我们就要对它进行一次旋转。然后接下来分为三步。

第一步,从插入或删除的位置,从下往上找,找到最小不平衡指数,我们要处理的就是这棵最小不平衡指数。接下来,从最小不平衡指数中找到了三个最重要的节点,然后把它们安排好,其他的节点先不考虑。将最小不平衡指数中剩下的结点也放到它,最终需要放的位置去。来看一下,首先什么是不平衡呢?不平衡的定义就是,这棵树中有某个结点的平衡因子,

绝对值大于一。比如说它是二或者负二。这样的话,就意味着这棵树已经不平衡了。那我们接下来就需要对它进行旋转操作,首先找到插入的节点或者删除的节点。然后从它开始一直往根找。有这样一个路径。看一下哪个结点?从这个路径上找到第一个平衡因子,绝对值大于一的结点。那是不是就是这个结点,它的平衡因子应该是负二是大于一的,所以以它为根的子数就是最小不平衡子数。我们就找到了对应的最小不平衡指数。

接下来,在这个最小不平衡指数中,我们选择三个最重要的结点,我把它叫做学霸结点。我们先处理这三个节点,剩下的这些节点,我把它叫做学渣节点,只有学霸写完了作业,学渣才有的抄,所以我们先处理学霸,再处理学渣。首先找到根根是这个,他是一个学霸级别,然后再找到他的儿子。那找左儿子还是右儿子呢?

我们看一下他的左儿子和右儿子谁更高?是不是右边更高?那就找到右儿子。当然,你也可以通过平衡因子来看,也是一样的,它的平衡因子为负,所以应该找右边,如果为正就找左边。然后找到他的儿子之后,再从他的儿子十找到十的儿子,十的儿子也像刚刚一样。谁比较高就选谁。这里是八比较高,所以这里选八。

也可以通过平衡因子,它的平衡因子为一,所以也应该找

考研数据结构平衡二叉树考点 以下有关平衡二叉树的考点内容,源于对《数据结构(C语言版)第2版》及王道讲解的整理和总结。重要考点插入新结点后,如何调整“不平衡”问题。 阅读详情

相关推荐

平衡二叉树的实现代码

前面已经讲过平衡二叉树的实现原理以及实例 原理参见 http://blog.csdn.net/wxbmelisky/article/details/47755753      实例参见 http://blog.csdn.net/wxbmelisky/article/details/47787963 平衡二叉树的实现代码如下

吴小宝的博客 9854

【23考研计算机408数据结构代码题强化阶段划重点(王道书)

本篇只适合考408的同学,请自主命题的同学自觉右上角×掉 因为王道书为了照顾自主命题的同学,所以很多算法也给出了代码实现,实际上对于考408的同学,很多代码是不需要掌握的,毕竟408代码题没有像自主命题有些挖的那么深,那么难。对于顺序表,一般情况下不需要使用结构体包起来,直接使用数组就行 传参时只需传一个数组名,一个数组中元素个数就行了 2.2.2顺序表上的基本操作的实现p15 增删改查,此处查找指的是顺序查找单链表的话这个结构体就需要掌握了头插法(可以用于链表逆置),尾插法,单链表的遍历,插入结点,删除

1万+

(王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转

文章目录一:AVL树基本概念二:AVL树实现原理(1)构建AVL树(2)旋转方法A:右单旋转调整(BF>0)B:左单旋转调整(BF<0)C:先左后右双旋转调整D:先右后左双旋转调整(3)构建演示三:AVL树相关代码 一:AVL树基本概念 二叉排序树有一个缺陷:树的高度会直接影响其查找效率,树越高效率越差,效率最差时为一棵单分支树 平衡二叉树(Self-Balancing Binary Search Tree):它首先是一颗二叉排序树,其中每个节点的左右子树高度之差绝对值不超过1。将二叉树上结点

快乐江湖的博客 4748

平衡二叉树的左旋右旋详解 看不懂你打我

平衡二叉树的左旋右旋 看不懂你打我左旋右旋的操作为什么要左旋右旋左旋右旋能保持排序二叉排序树的性质吗 左旋右旋的操作 1.左旋:对X节点左旋,即以X的右孩子Y为轴,将X节点转下来,变为Y的左孩子, 简单记为左旋即把该节点变为左孩子。 例题1.如对A左旋 注意2个问题: 1.既然要左旋要以右孩子为轴,那么右孩子是必须存在的,即不能为空。 2.左旋后B的左指针指向A,那原来B的左孩子C怎么办,谁去指向它? A原来的右指针指向B,在左旋后该怎么办,它指向谁? 所以我们将左旋后A的右指针指向B原来的左孩子C即可

yyg15的博客 1万+

【23考研408代码题参考模板——二叉树

标红色的为必须掌握有多个模板的只要掌握一种即可。非递归不要求,看不懂算了!!!

4422

平衡二叉树 C语言代码实现

关注、星标公众号,直达精彩内容来源: https://www.cnblogs.com/NoneID整理:李肖遥1. 什么是平衡二叉树平衡二叉树,我们也称【二叉平衡搜索树/AVL】,树中任何节点的两个子树的高度最大差别为1,巴拉巴拉。。。(https://baike.baidu.com/item/AVL树/10986648?fr=aladdin)但是有个注意的点: 平衡二叉树的前提是 二叉排...

李肖遥的专栏 1428

408真题】2010-03

关于线索二叉树,考代码题的可能很小,建议在考试之前回到课本看看代码即可,更多可能是考选择题,要牢记线索二叉树的结点结构:若无左子树,令1child指向其前驱结点:若无右子树,令rchild指向其后继结点。还需增加两个标志域,以标识指针域指向左(右)孩子或前驱(后继)。左边连左孩子或前驱,右边连右孩子或后继。写在后面这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!

@啊哈哈哈哈哈韩的博客 553

2024考研】题解25 | #判断是不是平衡二叉树#

一面面试官很耐心,一直和我聊项目,没有手撕,没有八股,过了十分钟就二面二面面试官应该是个主管,不是很耐心的样子,可能是饭点的缘故吧,看到我没有实习,随便点评了几。秋招的第一个offer,当时投递的是it管培生,面试的时候hr给我写的是it运维,并且跟我说竞争有点大,接不接受调剂,并给我介绍了几个岗位,我同意了,offer。全程半小时自我介绍,然后询问一下项目的背景,项目团队的合作,自己的工作无具体的细节技术问题,看在团队中的工作和对项目的把控之后结果要在十月中下旬。项目中树莓派使用的哪个版本?

2301_79125642的博客 814

c/c++数据结构线索二叉树(408)

线索二叉树

qq_46264842的博客 705

408——数据结构 第四章 树与二叉树

树与二叉树1. 树的基本概念2. 二叉树2.1 二叉树的定义及其主要特征2.2 二叉树的顺序存储结构和链式存储结构2.3 二叉树的遍历2.3.1 先序遍历:根左右(NLR)2.3.2 中序遍历:左根右(LNR)2.3.3 后序遍历:左右根(LRN)2.3.4 层序遍历2.4 线索二叉树的基本概念和构造3. 树、森林3.1 树的存储结构3.2 森林与二叉树的转换3.3 树和森林的遍历3.3.1 树的遍历3.3.2 森林的遍历4. 树与二叉树的应用4.1 二叉搜索树4.2 平衡二叉树4.3 哈夫曼(Huffma

spercer97的博客 625

挑战408——数据结构(22)——平衡二叉树与AVL算法

平衡树介绍 前几篇的文章我们介绍了一下二叉树和二叉搜索树。现在假设我们要建立一棵BST,依次插入下列数据: 20, 33, 50, 61, 87, 99 那么按照BST的规则我们可以得到下列的BST: 如果你问我,这是一棵二叉搜索树吗?这肯定的。但是它更像什么?链表!有什么区别呢?数据结构不同,链表只包含一个指向下一个节点的指针,而这个包含的还有指向左节点的指针。这个时候我们看看,我们之前定义的...

redAnt的博客 1086

考研数据结构018_平衡二叉树(AVL)

考研数据结构016_平衡二叉树AVL一、定义二、插入操作三、插入后调整“不平衡”问题1.LL左孩子左子树平衡旋转(右单旋转)1.LL代码:2.RR右孩子右子树平衡旋转(左单旋转)1.RR代码:3.LR左孩子右子树平衡旋转旋转)4.RL右孩子的左子树平衡旋转旋转)5.练习:调整完以后,一定验算是否符合左中右依次递增。1.2.3.四、查找效率分析 考试重点(选择题): 1.我们在二叉排序树中,插入一个新结点之后,怎么保证这棵树依然是“平衡二叉树”。 2.高为h的平衡二叉树,最少有几个结点——递推求解

weixin_43989347的博客 1237

十、考研数据结构笔记——树的应用,二叉树与树之间转换,二叉排序树,平衡二叉树,哈夫曼树考点

关于树的一些重要应用,做题技巧,经典例题 一、二叉树与森林,树之间的转换。 二、二叉排序树 三、平衡二叉树 四、哈夫曼树

Mr_GYF的博客 1658

详细图文——AVL树

平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。快来学习吧!详细图文。

带翅膀的猫的博客 12万+

平衡二叉树关键代码

struct AVLNode; typedef struct AVLNode *PAVLNode; struct AVLNode { KeyType key; int bf; PAVLNode llink,rlink; }; typedef struct AVLNode *AVLTree; typedef struct *PAVLTree; int avlInsert(PAVLT...

ENAIC__suger的博客 437

408数据结构学习笔记——二叉树的遍历和线索二叉树

1.二叉树的先中后序遍历 2.二叉树的层次遍历 3.由遍历序列构造二叉树 4.线索二叉树 5.王道课后题

JiangNan_1002的博客 4072

数据结构·考研】判断平衡二叉树

判断一棵树是不是平衡二叉树 一棵树是平衡二叉树,当且仅当它的左右子树皆是平衡二叉树并且左右子树高度差小于绝对值 1 。 判断的方式和判断满二叉树的方式很相似。 完整代码如下: #include<iostream> #include<algorithm> using namespace std; typedef struct node{ char val; struct node* left; struct node* right; }TreeNode,*Tree;

Jiawen9的博客 458

2021的408改动 & 408考点统计

十年考过五次以上的考点 时间复杂度 IEEE754 cache cache写策略 cache命中率 数据寻址方式 指令流水线 中断 子网划分 十年考过三次以上的考点 大小端存储 cache总容量(内容,存在位,标记位,替换控制位,脏位) 十年考过一次以上的考点 十年算法 求中点 逆序 合并 2020 2019 2018 尚未考察的考点 分块查找 历年真题 2019 时间复杂度 树和森林转换 树的遍历 树的节点和度的关系 赫夫曼树 平衡二叉树操作 缺页处理..

发现问题,并解决问题,批判性思维 5352
上一篇: 2024考研计算机408-红黑树插入复习建议
下一篇: 2024考研计算机408--Cache计算
计算机408
博客等级 码龄5年 11粉丝 · 5原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值