二叉排序树的定义
二叉排序树(Binary Sort Tree)或者是一棵空树,或者是具有下列性质的二叉树:
- 若它的左子树非空,则在左子树的所有结点的值都小于它的根结点的值
- 若它的右子树非空,则在右子树的所有结点的值都大于(若允许结点有相同的值,则大于等于)它的根结点的值
- 左、右子树也分别是一棵二叉排序树
简言之,二叉排序树的每个结点的值都大于它的左子树上的所有结点的值,而小于它的右子树上所有结点的值。图8-5所示就是一棵二叉排序树。
二叉排序树的性质
中序遍历二叉排序树,可以得到一个由小到大的有序序列。
例如,中序遍历如图8-5所示的二叉排序树,其结果序列为(26,40,50,55,58,65,68),是一个由小到大的有序序列。
二叉排序树的查找
若将查找表按二叉排序树的结构来组织,即树中每个结点对应一个记录,所有记录的关键字值满足二叉排序树的要求。对给定的查找值,就能针对二叉排序树进行查找。具体做法如下:当二叉排序树为空时,查找失败;当二叉排序树非空时&#