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

  • 左旋右旋的操作
  • 为什么要左旋右旋
  • 左旋右旋能保持排序二叉排序树的性质吗
  • 下次写平衡二叉树的LL、RR、LR、RL。

左旋右旋的操作

1.左旋:对X节点左旋,即以X的右孩子Y为轴将X节点转下来,变为Y的左孩子,
简单记为左旋即把该节点变为左孩子

例题1.如对A左旋

注意2个问题:
1.既然要左旋要以右孩子为轴,那么右孩子是必须存在的,即不能为空。
2.左旋后B的左指针指向A,那原来B的左孩子C怎么办,谁去指向它?
A原来的右指针指向B,在左旋后该怎么办,它指向谁?
所以我们将左旋后A的右指针指向B原来的左孩子C即可。

习题:请画出对B左旋后的结果。

2.右旋:对X节点右旋,即以X的左孩子Y为轴将X节点转下来,变为Y的右孩子,
简单记为右旋即把该节点变为右孩子

在详细讲解完左旋后,请对例题1的B右旋,并思考在右旋前A的右指针是指向B的,右旋后应该是指向谁呢?(耐心点,慢慢来比较快)

为什么要左旋右旋

为了减小树的高度

左旋右旋能保持排序二叉排序树的性质吗

可以,以左旋为例,左旋时B、D没有变,只要考虑A、C,我们把A变为B的左节点,满足A<B<D,与旋前一致,我们把C变为A的右孩子,C又在B的左边所以,A<C<B,所以A<C<B<D,与左旋前一致

下次写平衡二叉树的LL、RR、LR、RL。

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

  1. 搞懂平衡二叉树的左旋右旋双旋(Java实现)

    刚看到韩顺平老师的数据结构与算法对于平衡二叉树的讲解(最后会附上地址),有如下理解,希望能帮助大家!哪里需要改正的欢迎指正! 平衡二叉树:一种二叉排序树(BST Binary Sort Tree)的升 ...

  2. avl树左旋右旋的理解

    一直没搞懂非平衡二叉树变平衡二叉树时左旋右旋,今天下定决心搞懂,然后在众多博客中终于找到了这样一篇,非常形象,记录如下: AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个子树的高度最大 ...

  3. 详解红黑树之左旋右旋

    为什么要左旋右旋? 为了使得左右子树的高度差在一定范围内,需要通过旋转调整,这样就可以保持平稳的搜索效率 左旋: 步骤 1.设原来E的父节点是father,那么左旋之后需要改变的是: 2.S和fath ...

  4. 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了

    6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...

  5. nyoj202 红黑树 (二叉树的左旋右旋)

    题目202 题目信息 运行结果 本题排行 讨论区 红黑树 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子 ...

  6. 平衡二叉搜索树 - 左旋|右旋

    上一节 红黑树前奏 - 对树的基本理解 我们讲到 二叉搜索树 单向链表的问题,为了解决这个问题,我们引入了平衡二叉搜索树. 所谓平衡二叉搜索树,必须满足 BST 的特性.何为平衡,每个节点的平衡因子的 ...

  7. 二叉树旋转--左旋|右旋

    二叉树旋转 二叉树的旋转主要是应用在AVL树中,当添加一个节点时候导致左右两个子树的高度差不在是-1 , 1 , 0而变成了2 或者-2.此时就需要用到左旋/右旋了.当然左右旋或者有左旋也是基于左旋和 ...

  8. 红黑二叉树的左旋右旋和变色

    小白解析红黑树的基本 什么是红黑树 变色 右旋 什么是右旋呢? 左旋 什么情况下会左旋 什么是红黑树 这就是一个简单的红黑二叉树 红黑二叉树有以下几条基本的规则: 1. 节点分为红色或者黑色. 2.根 ...

  9. 左旋右旋问题一次搞定!!!

    左旋右旋问题的解决 编程思想 1.在左右旋函数中实现该函数功能首先要想好如何存放移位后的字符元素 2.左旋时将字符串首元素赋给临时变量tmp而后将字符串元素依次前移一位 3.将tmp的值再赋给字符串的 ...

最新文章

  1. wxpython多个面板_wxpython:隐藏其中一个拆分窗口面板
  2. 2015#183;Fool#39;s Day#183;NND
  3. 手把手实现YOLOv3(三)
  4. android布局DSL,android – 使用自定义Anko布局DSL解除警报对话框
  5. 转录组+微生物组联合解密困扰50年的丛枝菌根共生“自我调节”中枢分子网络机制...
  6. err-disabled
  7. 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
  8. [渝粤教育] 江西理工大学 新融合大学英语(I) 参考 资料
  9. 计算机毕业设计题目汇总 - 简单的毕设选题
  10. java线程(线程的概念,线程的状态)
  11. 妹子,你早该放弃了...
  12. java反射获取一个对象中属性(field)的值
  13. 达梦数据库表被锁住后解锁方法
  14. logstash grok mysql_logstash grok
  15. python 二项分布_Python-二项式分布
  16. Springboot学习笔记(二)Web开发
  17. vsftpd 编译安装 及 隐藏版本号
  18. 一个简单的投票插件(jQuery rater plugin)
  19. teamview更换Id
  20. 第七届XCTF国际联赛分站赛L3HCTF圆满落幕,Nepnep战队夺冠

热门文章

  1. androidstudio安装的app打开闪退,AndroidManifest中也声明了类,但是却没有报错信息。(小坑)
  2. 一年之计在于春,一日之计在于晨
  3. 大公司病,太TM形象了!
  4. Python笔记六、文件和数据格式化
  5. 补丁问题(WannaCry)补丁问题
  6. cad计算机在哪,Win7系统中cad临时文件保存在哪里
  7. 流行的rpc框架性能测试对比
  8. 查找数组中重复的元素
  9. 2022社区交友系统源码+支持在线聊天/直播+有搭建教程
  10. NBOJv2 Problem 1009 蛤玮的魔法(二分)