二叉排序树

二叉排序树

二叉排序树是一棵特殊的二叉树,它是一棵二叉树但同时满足如下条件:
对于树上任意一个结点,其上的数值必大于等于其左子树上任意结点数值,必小于等于其右子树上任意结点的数值。

二叉排序树的存储方式与二叉树保持一致。
从二叉树的插入开始了解其建树方式,对二叉排序树插入数字x:
1.若当前树为空,则x为其根结点。
2.若当前结点大于x,则x插入其左子树;若当前结点小于x,则x插入其右子树;若当前结点等于x,则根据具体情况选择插入左右子树或者直接忽略。

以插入4、2、6、1、3为例,其二叉排序树变化情况如下图:
二叉排序树
由于各个数字插入的顺序不同,所得到的二叉排序树的形态也很可能不同,所以不同的插入顺序对二叉排序树的形态有重要的影响。
但是,所有的二叉排序树都有一个共同的特点:若对二叉排序树进行中序遍历,那么其遍历结果必然是一个递增序列,这也是二叉排序树名字的来由,通过建立二叉排序树就能对原无序序列进行排序,并实现动态维护。