树结构调研个人资料
一、查找树(Search Trees)之AVL树(平衡二叉树)
(1)概述
AVL树是最先发明的自平衡二叉
查找树。在AVL树中任何节点的
两个子树的高度最大差别为1,
所以它也被称为高度平衡树。增
加和删除可能需要通过一次或多
次树旋转来重新平衡这个树。
丨图片来源:CSDN“带翅膀的猫”博客:详细图文——AVL树
(2)数据结构&特点
AVL树本质上还是一棵二叉搜索树,它的特点是:1.本身首先是一棵二叉搜索树。2.带有
平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。也就是说,
AVL树,本质上是带了平衡功能的二叉查找树(二叉排序树,二叉搜索树)。
(3)基本操作
1)插入节点(旋转)
假设由于在二叉排序树上插入结点而失去平衡的最小子树根结点的指针为a(即a是离插
入点最近,且平衡因子绝对值超过1的祖先结点),则失去平衡后进行的规律可归纳为下
列四种情况:
丨参考资料:百度百科,AVL树
①LL(右旋)
由于在*a的左子树根结点的左子树上插入结点,*a的平衡因子由1增至2,致使以*a为根的子树失去平
衡,则需进行一次右旋转操作。
实现代码:
丨图片来源:CSDN“带翅膀的猫”博客:详细图
文——AVL树
②RR左旋
由于在*a的右子树根结点的右子树上插入结点,*a的平衡因子由-1变为-2,致使以*a为根的子树失去
平衡,则需进行一次左旋转操作。
实现代码:
丨图片来源:CSDN“带翅膀的猫”博客:详细图文——
AVL树
评论0