数据结构之AL树
数据结构之AL树
1、简介
基于AVL树产生的set和map,二分搜索树:1、2、3、4、5会形成链表,是最早的自平衡的二叉树
2、平衡二叉树
(1)整棵树达到最低的高度,除了最底层的树,其余均有左右节点
(2)对于任意一个节点,左子树和右子树的高度差不能为超过1
(3)平衡二叉树的高度和节点数量之间的关系也是O(logn)
3、AVL树的左旋转
(1)维护平衡时候:加入节点后,沿着节点向上维护平衡性
(2)默认平衡节点为0,增加新节点,父类平衡因子需要改变,大于1时说明一次大于2需要维护平衡,用左子数减去右侧数目
(3)当插入的元素在不平衡的节点的左侧的左侧
(4)插入的元素在不平衡的节点的右侧的右侧
T4<y<T3<x<T1<z<T2
X.left=y y.right=T3
4、AL树的右旋转
(1)左侧不平衡,左子树减去右子树大于1
(2)顺时针将父类旋转到子类的节点
(3)
T1<z<T2<x<T3<y<T4,右旋转,x.right=y,y.left=T3, 保持了平衡二叉树的特征
5、LR和RL
插入的元素在不平衡节点的左侧的右侧,产生了不平衡,可以后续转换成左旋转和右旋转