现在我们来介绍二叉树的一种特殊形式 — 二叉排序树,了解它的区分策略及常用操作。
什么是二叉排序树 Binary Sort Tree, BST
二叉排序树,又称二叉查找树、二叉搜索树、B树。
二叉排序树是具有下列性质的二叉树:
- 若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
- 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
- 左、右子树也分别为二叉排序树。
也就是说,二叉排序树中,左子树都比节点小,右子树都比节点大,递归定义。
根据二叉排序树这个特点我们可以知道,二叉排序树的中序遍历一定是从小到大的,比如上图,中序遍历结果是:
1 3 4 6 7 8 10 13 14
二叉排序树的关键操作
1.查找
根据二叉排序树的定义,我们可以知道在查找某个元素时:
- 先比较它与根节点,相等就返回;或者根节点为空,说明树为空,也返回;
- 如果它比根节点小,就从根的左子树里进行递归查找;
- 如果它比根节点大,就从根的右子树里进行递归查找。
可以看到,这就是一个 二分查找。