高度平衡的搜索二叉树

一棵平衡树,或是空树,或是具有以下性质的二叉搜索树:左子树和右子树都是AVL树,且左右子树的高度之差的绝对值不超过1。

该二叉树,根结点的右子树高度为3,左子树高度为2。结点上方的数字为平衡因子,因为右子树高度比左子树高度大1,所以根结点的平衡因子为1。

一颗平衡二叉树,如果有n个结点,其高度可保持O(log2^n),平均搜索长度也可以保持在O(log2^n)

平衡化旋转

AVL树相较于普通的二叉搜索树,自主要的就是做了平衡化处理,使得二叉树变的平衡,高度降低。

在插入一个结点后应该沿搜索路径将路径上的结点平衡因子进行修改,当平衡因子大于1时,就需要进行平衡化处理。从发生不平衡的结点起,沿刚才回溯的路径取直接下两层的结点,如果这三个结点在一条直线上,则采用单旋转进行平衡化,如果这三个结点位于一条折线上,则采用双旋转进行平衡化。

单旋转

左单旋

动图演示,图片内容可以无视,看懂操作进行了

将右子树的左子树链接到父亲节点的右孩子结点,父亲节点作为ptr结点的左孩子结点便完成了旋转

右单旋

右单旋是左单旋的镜像旋转.

当前节点ptr,与父亲节点和当前节点的左孩子结点位于一条直线上时,使用右单旋进行平衡。

双旋转

先左后右双旋转

当在ptr的左子树的右子树中插入一个结点后,造成了ptr平衡因子为-2的不平衡,将ptr向下找到当前结点的左孩子的右孩子,先进行左单旋ptr->left = subL,然后将ptr的右子树断开指向subR,此时便完成了旋转,最后将平衡因子进行更新。

先右后左双旋转

先右单旋再左单旋,是先左后右的镜像旋转,这里就不做赘述了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

带父节点的平衡二叉树_平衡二叉树的左右旋以及双旋转的图文详解相关推荐

  1. 希云Docker培训视频百度云_希云cSphere-最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

  2. jupyter 代码自动补全_在 Pycharm 中安装及使用 Jupyter (图文详解)

    Pycharm 更新了对 Jupyter  的功能支持,结合 IntelliJ 的自动补全代码,自动格式化代码,执行调试,版本控制,以及大量的插件支持. 让你在高颜值环境下,高效编写代码,效果如下: ...

  3. centos 8 kubernetes安装详解_电力工程必学!8方面施工图文详解,电气安装工程施工工艺...

    一.盘.台.开关柜安装工艺控制标准 1.1按设计图纸并根据厂家资料.尺寸误差要求制作盘底座. 1.2立盘的工艺标准应符合设备厂家要求. 盘柜位置偏差校正 盘柜基础与地面标高差一致 1.2.1盘.台底座 ...

  4. 惠普打印机故障代码_惠普打印机常见故障解决办法【图文详解】

    Hp打印机,也就是我们常说的惠普打印机,目前已经成了打印机行业中的最为人们熟知的品牌之一,不过对于大多数打印机来说,无论品牌好坏,总会在使用的过程中出现这样那样的问题,而惠普打印机在使用过程中是故障率 ...

  5. 电脑连接电视方法详解_查看电脑配置的几种方法(图文详解)

    很多朋友想要了解自己电脑详细的配置的时候,一般都是通过第三方的工具检测的.那么有没有其他更好的方法可以在win系统下查看电脑配置呢?今天我就给大家分享一下如何查看电脑配置. 查看电脑配置的几种方法图文 ...

  6. tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...

    建筑安装工程造价,高清PPT图文详解,小白也能学会的简单流程 工程造价的直意就是工程的建造价格,是指进行某项工程建设所花费的全部费用.工程造价在工程中是很关键的存在,是工程能够取得的关键:对工程建设的 ...

  7. 华硕h81m一k跳线图_主板跳线接法的所有秘密图文详解(适合新手)

    作为一名新手,要真正从头组装好自己的电脑并不容易,也许你知道CPU应该插哪儿,内存应该插哪儿,但遇到一排排复杂跳线的时候,很多新手都不知道如何下手.钥匙开机其实并不神秘 还记不记得你第一次见到装电脑的 ...

  8. spssχ2检验_一致性检验和配对卡方检验的SPSS实例操作图文详解

    一致性检验和配对卡方检验的SPSS实例操作图文详解,配对计数资料的卡方检验. 一.问题与数据 有两种方法可用于诊断某种癌症,A方法简单易行,成本低,患者更容易接受,B方法结果可靠,但操作繁琐,患者配合 ...

  9. moe安装指南_【教程】LEADTOOLS v19试用版安装指南图文详解

    LEADTOOLS Imaging Pro Developer Toolkit 20多年的老牌图像处理控件,支持TWAIN扫描.200多种图像效果.150多种图像格式- LEADTOOLS Docum ...

最新文章

  1. 设计模式-创建型模式-建造者模式
  2. 本周ASP.NET英文技术文章推荐[02/25 - 03/03]
  3. 类文件结构-field
  4. Effective Java之静态工厂代替构造器(一)
  5. 手工备份与还原Windows8激活文件
  6. php中的冒泡排序实例,PHP实现冒泡排序的简单实例,php冒泡排序_PHP教程
  7. HTML块,含样式的标签
  8. python 结构数组_Python-“结构数组”
  9. 大白菜ZSKAME下载 2013官方地址
  10. 易班显示服务器错误,易班常见问题汇总
  11. Silverlight 2.“.NET研究”5D RPG游戏技巧与特效处理:(二)纸娃娃系统
  12. Android/IOS高仿微信IM源码
  13. Shape添加阴影效果
  14. Ubuntu 20.04(Linux Mint XFCE 20)安装LBP2900打印机
  15. 【Shading】Shading 着色
  16. 统计物理α和β方法体系介绍
  17. cesium地图添加坐标点
  18. 购买服务器需要注意哪些问题
  19. ubuntu16.04,解决桌面右键菜单失效问题!
  20. 抽象函数的对称性验证

热门文章

  1. oracle整张表转置,从Oracle表格行列转置说起...
  2. html转换jquery,将html字符串转化为jquery对象
  3. Android 按钮选择状态,如何修改Android中的默认按钮状态而不影响按下和选择的状态?...
  4. VSCode代码格式化自动换行问题
  5. Tomcat中设置数据源和连接池
  6. myeclipse 中解决Hibernate 和Struts 2的冲突
  7. 【转】TranslateAnimation详解
  8. 实现Flex的TextArea文本中关键字的高亮显示
  9. html语言中base,HTML base 标签
  10. 数组和JSON之间的格式转换