平衡二叉树:
前提是有序的二叉树,它的左右子树高度差不超过一,所有的子树都满足这个条件
如果一个有序二叉树呈现或者接近单支状,它的查找效率越接近单链表,效率越低,因此只有达到平衡状态时,它的查找效率才最高
由于节点的值是受限的,因此只能进行调整,而不能直接修改
二叉树不平衡的四个基础原因:
x y
/ \ / \
y t1 以y为轴向右旋转 z x
/ \ / \ / \
z t2 t3 t4 t2 t1
/ \
t3 t4
x y
/ \ / \
t1 y 以y为轴向左旋转 x z
/ \ / \ / \
t2 z t1 t2 t3 t4
/ \
t3 t4
x x z
/ \ / \ / \
y t1 z t1 y x
/ \ / \ / \ / \
t2 z y t4 t2 t3 t4 t1
/ \ / \
t3 t4 t2 t3
以z为轴向左旋转 以z为轴向右旋转
x x z
/ \ / \ / \
t1 y t1 z x y
/ \ / \ / \ / \
z t2 t3 y t1 t3 t4 t2
/ \ / \
t3 t4 t4 t2
以z为轴向右旋转 以z为轴向左旋转