平衡二叉树简介和旋转方式

有序二叉树可能存在的问题

给一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST)并分析问题所在

平衡二叉树简介和旋转方式_第1张图片

平衡二叉树简介和旋转方式_第2张图片 

 二叉平衡树的特点

1.它是一棵空树或者它两课子树的高度差的绝对值不超过1,并且左右子树都是一棵平衡二叉树

2.平衡因子:左子树的高度-右子树的高度

我们将平衡因子绝对值小于1的有序二叉树称为平衡二叉树

构建平衡二叉树

平衡调整的步骤:

1.如果发现新插入一个节点之后,造成原有节点的平衡因子>=2,造成了不平衡,需要调整

2.找到旋转类型:LL型,RR型,LR型,RL型

3.进行调整


四种旋转类型的旋转

LL型

1.将A的左孩子B提升为新的根节点
2.将原来的根节点A降为B的右孩子
3.将各子树按大小关系连接

平衡二叉树简介和旋转方式_第3张图片

平衡二叉树简介和旋转方式_第4张图片


RR型

1.将A的右孩子B升为新的根节点
2.将原来的根节点降为左孩子
3.将各子树按大小关系连接

平衡二叉树简介和旋转方式_第5张图片

平衡二叉树简介和旋转方式_第6张图片 


LR型旋转-----(下二整体先旋转,后与LL同)

先把LR型旋转变成LL型旋转,造成不平衡的节点最后插入

 平衡二叉树简介和旋转方式_第7张图片

 平衡二叉树简介和旋转方式_第8张图片

造成不平衡的节点最后插入,造成不平衡的节点最后插入,造成不平衡的节点最后插入

 平衡二叉树简介和旋转方式_第9张图片平衡二叉树简介和旋转方式_第10张图片平衡二叉树简介和旋转方式_第11张图片

 RL型旋转-----(下二整体先右转,后与RR同),造成不平衡的节点最后插入

平衡二叉树简介和旋转方式_第12张图片

平衡二叉树简介和旋转方式_第13张图片 

 

你可能感兴趣的:(算法,算法)