树(4)平衡二叉树AVL

Published on with 0 views and 0 comments

在 AVL 树中,任一节点对应的两棵子树的最大高度差为 1,因此它也被称为高度平衡树

例如图 2.1 不是平衡二叉树,因为结点 60 的左子树不是平衡二叉树。
image20220406165447k5ki5o6.png

图 2.2 也不是平衡二叉树,因为虽然任何一个结点的左子树与右子树都是平衡二叉树,但高度之差已经超过 1 。
image20220406165506s27lpqd.png

平衡因子

定义: 某节点的左子树与右子树的高度(深度)差即为该节点的平衡因子(BF,Balance Factor),平衡二叉树中不存在平衡因子大于 1 的节点。在一棵平衡二叉树中,节点的平衡因子只能取 0 、1 或者 -1 ,分别对应着左右子树等高,左子树比较高,右子树比较高。
image20220406165640d7m1zs5.png

image20220406165646rsc2w8a.png

image20220406165650hxwyjik.png

AVL 树的四种插入节点方式
A 的左孩子的左子树插入节点

A 的左孩子的左子树插入节点 20220406165934omtx9r0.gif

A 的右孩子的右子树插入节点

A 的右孩子的右子树插入节点 20220406170005oebiqjr.gif

A 的左孩子的右子树插入节点

若 A 的左孩子节点 B 的右子树 E 插入节点 F ,导致节点 A 失衡,如 2.3 图:
image20220406170350h1necga.png
先左旋再右旋
image202204061703173kbzwdo.png
image202204061703208guq3j9.png

A 的右孩子的左子树插入节点

如图 2.4 所示
image20220406170441e9iz9ms.png

先右旋再左旋
image20220406170516voohsxo.png
image20220406170520it98wja.png

AVL 树的四种删除节点方式

跟二叉搜索树的删除方式一样,也分为四种情况

(1)删除叶子节点 (2)删除的节点只有左子树 (3)删除的节点只有右子树 (4)删除的节点既有左子树又有右子树

在上篇文章有写,这里不再赘述


标题:树(4)平衡二叉树AVL
作者:cuijianzhe
地址:https://cjzshilong.cn/articles/2022/04/08/1649399935384.html