平衡二叉树基础(学习笔记)

一、知识回顾

 

二、平衡二叉树的定义 

例子:

① 如下左图二叉排序中,看根节点的左子树高度为2,右子树高度为3,高度差为-1,左右各子树高度差如图计算所示,所以该二叉排序树为平衡二叉树。 

② 如下右图二叉排序树中,看根节点的左子树高度为2,右子树高度为3,高度差为-1,满足,但是看各节点是否都满足的时候发现值为53的节点,左子树高度为0,右子树高度为2,差值绝对值>1,所以不是二平衡二叉树!

三、平衡二叉树的调整:

 

失衡的四种类型:LL,LR,RL,RR

寻找最小失衡的根节点A ,比如失衡节点有好几个,找到失衡节点数比较少的那颗子树的根节点

 

调整方法和调整原则:注意保持二叉排序树的性质,谁在中间将谁放入根节点

对于LL型,C比B小,B比A小,所以将B调整为根节点,左孩子为C,有孩子为A,满足二叉排序树的性质

对于LR型,C比B大,同时B、C都处在A的左子树,所以B、C都比A小,所以C调整为根节点,左孩子为B,有孩子为A

对于RL型,C比A小,同时C、B都处于A的右子树,所以C、B都比A小,所以C调整为根节点,左孩子为A,有孩子为B

对于RR型,C比B大,B比A大,所以将B调整为根节点,左孩子为A,有孩子为B,满足二叉排序树的性质

AVL树LL型调整过程:平衡旋转

将B和其左孩子上升,其右孩子作为A的左孩子

 

AVL树RR型调整过程

 

AVL树LR型调整:

AVL树RL型调整:

 图片来源:https://www.bilibili.com/video/av37955178/?spm_id_from=333.788.videocard.2

参考例题(推荐):https://www.bilibili.com/video/av37955231/?spm_id_from=333.788.videocard.0

猜你喜欢

转载自blog.csdn.net/Li_haiyu/article/details/88788723