左旋转、右旋转、双旋
左旋转、右旋转、双旋https://www.cnblogs.com/shan333/p/15468699.html
1,LL :– 右旋转(单旋):为啥LL ,要用右旋转:LL 的意思是:左左,说明左边高度多了一个?
--------------------左边过重失衡,右旋转,把重量匀称一点到右边。 (图片来源小码哥教育)
2,RR: – 左旋转(单旋):为啥RR ,要用左旋转:RR 的意思是:右右,说明右边高度多了一个?
--------------------右边过重失衡,左旋转,把重量匀称一点到左边。(图片来源小码哥教育)
3,LR – RR:左旋转,然后得到 LL,再右旋转(双旋):首先看LR-RR结构的最后一对是RR,
■ 为啥RR, 要用左旋转:RR 的意思是:右右,说明右边高度多了一个?
--------------------右边过重失衡,左旋转,把重量匀称一点到左边。
■ 然后得到LL,要用右旋转,LL的意思是:左左,说明左边高度多了一个?
--------------------左边过重失衡,右旋转,把重量匀称一点到右边。 (图片来源小码哥教育)
(图片来源小码哥教育)
4,RL – LL:右旋转,然后得到 RR,再左旋转(双旋):首先看RL-LL 结构最后一对是LL,
■ 为啥LL, 要用右旋转:LL 的意思是:左左,说明左边高度多了一个?
--------------------左边过重失衡,右旋转,把重量匀称一点到右边。
■ 然后得到RR,要用左旋转,RR的意思是:右右,说明右边高度多了一个?
--------------------右边过重失衡,左旋转,把重量匀称一点到左边。(图片来源小码哥教育)
(图片来源小码哥教育)
1、旋转的意义:就是为了匀称掉失衡的状态。✿ 最后一个字母就是提示失衡的情况: ● LL: 是左边失衡~ 右旋转 ● RR:是右边失衡~ 左旋转 ● LR-RR: (可以看到该结构最后一对是 RR,是右边失衡)左旋转,处理后得到~LL(是左边失衡),右旋转。 ● RL-LL:(可以看到该结构最后一对是 LL,是左边失衡)右旋转,处理后得到~RR(是右边失衡),左旋转。 |
1,LL型【右旋转】的代码:
g.left = p.right;
p.right = g;
理解:右旋g:将p的right 赋值给了g.left 。【原先模型中,g.left = p】
然后 p.right 指向了g。
【形态理解上:】【g的 左边太重了】处理:
g.left = p.right; ● 代码意思:p 要丢给了g 最近的孩子(右孩子),然后 p 爬升了,
p.right = g; ● 代码意思:g 拿了 p 的右孩子后下沉了,p 的右孩子变成了下层的 g。
形象生动地使用现实中天平平衡的理解角度即可啦~
2,如何用代码判断是LL、RR、LR、RL 型的呢?
1,先看父节点是 左,则 L:
● 然后再看当前结点是左,则 LL,否则是右,则LR;
2, 若父结点是 右,则 R:
● 然后再看当前结点是左,则RL,否则是右,则RR;
左旋转、右旋转、双旋相关推荐
- 平衡二叉树(AVL)的左旋转右旋转和双旋转
平衡二叉树的介绍 首先,咱们先来说一下为什么要提出平衡二叉树的概念,如果一个二叉排序树是一个只有左子树或者右子树的二叉排序树的时候,其实它就相当于一个链表,但是他的查询,删除,遍历的速度却没有链表快. ...
- 大名鼎鼎的红黑树,你get了么?2-3树 绝对平衡 右旋转 左旋转 颜色反转
前言 11.1新的一月加油!这个购物狂欢的季节,一看,已囊中羞涩!赶紧来恶补一下红黑树和2-3树吧!红黑树真的算是大名鼎鼎了吧?即使你不了解它,但一定听过吧?下面跟随我来揭开神秘的面纱吧! 一.2-3 ...
- Java之HashMap经典算法-红黑树(插入节点平衡调整,左旋转,右旋转)
1. 红黑树的优势 有了二叉搜索树,为什么还需要平衡二叉树? 二叉搜索树容易退化成一条链,这时,查找的时间复杂度从 O(log2N)O(log_2N)O(log2N) 将退化成 O(N)O(N )O ...
- 平衡树——旋转的原理、左旋转、右旋转、LR、RL
右旋转 我把以前的二分树的图片模拟.和这张的旋转相对应 T1<z<T2<X<T3<Y<T4 二分树就是左边的都小于的右边的,上面的T1小于T4 从小到大 然后先把T ...
- 程序员编程艺术(算法卷):第一章、左旋转字符串
第一章.左旋转字符串 作者:July,yansha. 时间:二零一一年四月十四日. 说明:(狂想曲,有三层意思:1.思绪纷飞,行文杂乱无章,想到什么,记下什么.2.简单问题深入化,复杂问题精细化,不惧 ...
- 数据结构——算法之(010)( 字符串的左旋转操作)
[申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出. 联系邮箱:Mr_chenping@163.com] 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部.如把字符串 ...
- 【编程题目】左旋转字符串 ☆
26.左旋转字符串(字符串) 题目: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串 abcdef 左旋转 2 位得到字符串 cdefab.请实现字符串左旋转的函数. ...
- 翻转单词顺序与左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序.但是单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student.",则输出" ...
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I 第一步,翻转句子中的所有字 ...
最新文章
- Linux C/C++解析xls
- 从浏览器发展史读懂user-agent
- 【信息安全】职业发展之惑系列三 -- 我该选择怎样的职业发展道路
- IIS 7.5 配置伪静态方法
- SpringBoot中使用thymeleaf的switch来实现if-else if -else的效果
- 制作bpmn html,BPMN 2.0规范详解
- 信息学奥赛一本通 1139:整理药名 | OpenJudge NOI 1.7 15
- android ndk 段错误,android crash之段错误原因及分析方法
- 图片横向滚动,两边有按钮控制
- python学习手册四版中文_Python学习手册(第4版) 中文版.pdf 全文免费
- Android免root流量防火墙,简单小程序
- 软考高项-案例分析背诵
- C++二叉树的 前中后序遍历(学C++必看必会)深度优先遍历详解
- 小程序源码:长期稳定短视频去水印-多玩法安装简单
- Nik Collection 4
- 微信小程序接收后台返回的文件流并打开
- gis地图图层(前台)
- 三种方式,实现多可系统外网访问
- 雷电9模拟器安装抓包工具whistle证书
- Xamarin.Android之绑定库教程
热门文章
- c语言表达式中有多个运算符 则运算时,如果在一个C语言表达式中有多个运算符,则运算时应该()。...
- mysql冷门语句_MySQL稍微冷门的问题汇总
- 饭后时间(四)---SSD先验框的尺寸及计算源码(含代码ssd_anchor.py)
- java 线程间_Java:线程间的用法不同。
- 计算机同步的原理是什么意思,说说和朋友圈同步的原理是什么意思
- 从小白开始学习CAD(一)
- 大数据时代究竟带来了什么? ——写给普通人看的大数据文章
- 长沙大学生毕业后工资有多少?
- 荣耀v30升级鸿蒙后充电特效,什么?荣耀V30 PRO的双超级快充还能这么玩?
- NCC低代码平台走过的坑(持续更新)