二叉排序树
二叉排序树定义
二叉排序树:又称为二叉查找树或者二叉搜索树。它是一棵空树或者是有下列性质的二叉树:
1、若左子树不空,则左子树上所有结点的值均小于它的跟结构的值;
2、若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。
3、它的左、右子树也分别为二叉排序树。
二叉排序树的检索时间与二叉排序树的结构也有关系:当所有结点都位于左子树或者右子树时,检索时间最长:
此时检索时间最坏,为O(n),如果是下面这种结构的话,检索时间可以达到O(logn)。
这种二叉排序树我们称为平衡二叉排序树,又称为AVL树。
平衡二叉排序树(AVL树)
平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。平衡树的平衡方法:
LL:对该结点的左儿子的左子树进行了一次插入,需右旋转。
LR:对该结点的左儿子的右子树进行了一次插入,先左后右。
RL:对该结点的右儿子的左子树进行了一次插入,先右后左。
RR:对该结点的右儿子的右子树进行了一次插入,需左旋转。