二叉查找树
二叉查找树的特征(递归) ——或者是一棵空树或者是具有如下特性的二叉树:
- 若它的左子树不空,则左子树上所有结点的值均小于根结点的值;
- 若它的右子树不空,则右子树上所有结点的值均大于根结点的值;
- 它的左、右子树也分别是二叉排序树。
- 中序遍历二叉排序树可得到一个关键字的有序序列。
在一般情况下,查找和插入的时间复杂度为logN, 但是在极端情况下会退化为链表,此时查找变为顺序遍历,失去了排序树的意义。——构造的二叉查找树的形状依赖于数据项,且依赖于它们加载的顺序
二叉查找树平衡性很差(即失衡)时,可用AVL树、红黑树和伸展树进行改进。其中AVL树和红黑树是高度平衡的,伸展树是加权平衡的(将常用的数据项放在树中接近根部的位置)