0
点赞
收藏
分享

微信扫一扫

二叉平衡树AVL简介

星巢文化 2022-01-27 阅读 18

代码实现可见下篇文章,本文主要讲二叉排序树到平衡树的实现过程。

1 二叉平衡树的定义

  • 平衡二叉树是二叉排序树的进化,是第一个引入平衡概念的二叉树,很好地解决了二叉排序树(二叉查找树)退化为链表的问题;平衡二叉树进行删除和插入一个节点时,如果左右子树的高度差超过1,需要进行节点之间的旋转。常见旋转情况如下。

2 二叉平衡树的基础旋转图解

  • 2.1 LL型(左左型),右旋节点3,转换为平衡二叉树

  • 2.2 RR型,左旋节点1,转换为平衡二叉树,

 

  • 2.3 LR型,左旋节点7变为LL型,右旋节点8变为平衡二叉树

  • 2.4 RL型,右旋节点7变为RR型,左旋节点8变为平衡二叉树

 3 平衡二叉树的旋转练习

  • 从最低层的节点开始,依次判断各个节点的不平衡度,直到遇到不平衡度大于或等于2的节点
  • 对该节点结合子树子结点进行LL或RR或RL或LR判断,进行适当的左旋或右旋
  • 不断重复以上步骤,直至所有节点的不平衡度均为0或1,变为平衡二叉树
  • 以下红色数字表示该节点的不平衡度,红色背景表示下一步操作的节点

举报

相关推荐

0 条评论