定义:平衡二叉树是一棵二叉排序树,或者为空,或者满足以下条件:

1)左右子树高度差的绝对值不大于1;

2)左右子树都是平衡二叉树。

平衡因子:左子树的高度减去右子树的高度,显然,在平衡二叉树中,每个结点的平衡因子的值为-1,0或1。

如何构造平衡二叉树(AVL树)

在平衡的二叉排序树中插入一个结点,当出现不平衡时,根据不平衡情况分四种调整方法

——假设最低不平衡结点为A,根据新插入结点与A的位置关系来命名调整方法:

LL型:新插入结点在A的左孩子(L)的左子树(L)中;

LR型:新插入结点在A的左孩子(L)的右子树(R)中;

RL型:新插入结点在A的右孩子(R)的左子树(L)中;

RR型:新插入结点在A的右孩子(R)的右子树(R)中。



[例子]:依次输入下列数据构造一棵平衡二叉树:

100,90,80,60,70,50,120,110,150,87。

如何构造平衡二叉树(AVL树)(LL、LR、RL、RR)相关推荐

  1. Java数据结构——平衡二叉树(AVL树)

    AVL树的引入 搜索二叉树有着极高的搜索效率,但是搜索二叉树会出现以下极端情况: 这样的二叉树搜索效率甚至比链表还低.在搜索二叉树基础上出现的平衡二叉树(AVL树)就解决了这样的问题.当平衡二叉树(A ...

  2. Python数据结构11:树的实现,树的应用,前中后序遍历,二叉查找树BST,平衡二叉树AVL树,哈夫曼树和哈夫曼编码

    1.概念 树一种基本的"非线性"数据结构. 相关术语: 节点Node:组成树的基本部分.每个节点具有名称,或"键值",节点还可以保存额外数据项,数据项根据不同的 ...

  3. 平衡二叉树,AVL树之图解篇

    学习过了二叉查找树,想必大家有遇到一个问题.例如,将一个数组{1,2,3,4}依次插入树的时候,形成了图1的情况.有建立树与没建立树对于数据的增删查改已经没有了任何帮助,反而增添了维护的成本.而只有建 ...

  4. 一种基于平衡二叉树(AVL树)插入、查找和删除的简易图书管理系统

    目录 1. 需求分析 2. 项目核心设计 2.1 结点插入 2.2 结点删除 3 测试结果 4 总结分析 4.1 调试过程中的问题是如何解决的,以及对设计与实现的回顾讨论和分析 4.2 算法的时间和空 ...

  5. 数据结构-平衡二叉树(AVL树)

    目录 1,平衡二叉树的介绍 1.1,二叉排序树存在的问题 1.2,平衡二叉树 1.3,平衡二叉树的创建 1.4,平衡二叉树的查找 2,代码实现 2.1,平衡二叉树的节点类型 2.2,LL旋转(单右旋转 ...

  6. java数据结构与算法之平衡二叉树(AVL树)的设计与实现中的事实代码

    普通二叉查找树的问题   在开篇,我们提到过,普通二叉树(二叉查找树)在操作的时间复杂度上不一定遵循O(㏒n),也有可能是O(n),这是为什么呢?在上一篇中,我们明明插入都按照一定规则比较的呀,其实那 ...

  7. 数据结构——平衡二叉树(AVL树)之插入

    文章目录 前言 一.定义 二.基本操作 1.查找, 2.插入(如何调整) 如何调整 代码实现插入 前言 首先我们来思考一下一个普通二叉树保存数据,如果想查找一个数据,由于普通二叉树保存数据是随机的,要 ...

  8. 算法小讲堂之平衡二叉树|AVL树(超详细~)

    文章目录 一.前言 二.定义 三.原理 3.1 查找操作 3.2 最小(大)值结点 3.3 旋转操作 3.3.1 LL旋转 3.3.2 RR旋转 3.3.3 LR旋转 3.3.4 RL旋转 3.4 插 ...

  9. 平衡二叉树---AVL树的实现

    AVL树是最先发明的自平衡二叉查找算法,是平衡二叉树的一种.在AVL中任何节点的两个儿子子树的高度最大差别为1,所以它又被成为高度平衡树.查找.插入和删除在平均和最坏情况下都是O(log n).增加和 ...

最新文章

  1. 机器学习中的一些概念
  2. 在Linux下查看共享文件夹
  3. LockSettingsService的setLockCredentialInternal函数详解
  4. Python有了concurrent的话mutiprocessing和threading还有存在的意义吗?
  5. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)...
  6. phpwind 报名插件 dpsign_修图神器!PS无损放大图片插件Alien Skin Blow Up,可调3600%...
  7. 刷题记录 kuangbin带你飞专题四:最短路练习
  8. hex2bin和bin2hex
  9. dotnet 入门到放弃 使用 .NET Core 卸载工具
  10. SNMP简单网络管理协议及开发测试工具
  11. excel函数:VLOOKUP+IF多条件匹配取值(数组函数)
  12. odoo13 订单模板设置_Odoo 13开发者文档:视图
  13. win10一根网线连接linux,win10系统使用一根网线连接两台电脑的操作方法
  14. 狼人杀纯白之女个人理解
  15. bp是什么意思贷款利率,利率上bp是什么意思
  16. 世界在变化刷脸支付一直奋进
  17. 2020-04-17
  18. XMind商业思维导图——市场营销!
  19. 设计一个车辆违章系统
  20. 鼠标点击控制div层展开收缩

热门文章

  1. 广东省餐饮场所可燃气体报警装置安装使用工作指引(试行)
  2. 谈谈〈鹿鼎记〉中的七位女主角
  3. LeetCode知识点总结 - 883
  4. 刘韧:再没有比写字更容易的事了
  5. 阿里云删除sshd_config文件(救急)
  6. HoloLens联合发明人:打造理想的全天AR需要解决这些问题
  7. Oracle数据库通过身份证计算男女数量比例(Java的SSM框架)
  8. 【JAVA程序设计】(C00024)javaEE学生选课管理系统
  9. java前端传到数据库显示问号?
  10. 收集的一些接私活的网站