当前位置:网站首页>(十四)平衡二叉树
(十四)平衡二叉树
2022-08-04 05:28:00 【顺毛黑起】
基本介绍
- 平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为 AVL 树, 可以保证查询效率较高。
- 具有以下特点:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过 1,并且左右两个子树都是一棵平衡二叉树。
一般情况下,假设由于在二叉排序树上插入结点而失去平衡的最小子树根节点的指针为a(即a是离插入结点最近,且平衡因子绝对值超过1的祖先结点),则失去平衡后进行调整的规律4种
(1)单向右旋平衡处理:由于在a的左子树根结点的左子树上插入结点,a的平衡因子由1增至2,使得以a为根的子树失去平衡,需要进行一次向右的顺时针旋转。(2)单向左旋平衡处理:由于在a的右子树根结点的右子树上插入结点,a的平衡因子由-1变为-2,使得以a为根的子树失去平衡,需要进行一次向左的逆时针旋转。
(3)双向旋转(先左后右)平衡处理:由于在a的左子树根结点的右子树上插入结点,a的平衡因子由1增至2,使得以a为根的子树失去平衡,需要进行两次旋转(先左旋后右旋)。
(4)双向旋转(先右后左)平衡处理:由于在a的右子树根结点的左子树上插入结点,a的平衡因子由-1变为-2,使得以a为根的子树失去平衡,需要进行两次旋转(先右旋后左旋)。
边栏推荐
猜你喜欢
随机推荐
MySQL事务详解(事务隔离级别、实现、MVCC、幻读问题)
[NSSRound#1 Basic]
flink-sql所有表格式format
CTFshow—Web入门—信息(1-8)
JS实现上一个、下一个、置顶、置底操作
SQL练习 2022/7/5
ThinkPHP5.0.x 反序列化分析
NFT市场可二开开源系统
【树 图 科 技 头 条】2022年6月28日 星期二 伊能静做客树图社区
flink-sql所有语法详解
实际开发中,客户要求密码输入框禁止粘贴~
实际开发中左菜单自定义图标点击切换
程序员的财富观
EventBus源码分析
进程、线程、协程的区别和联系?
flink-sql大量使用案例
iptables防火墙
lambda函数用法总结
flink sql left join数据倾斜问题解决
IP地址查询