二叉排序树又称二叉查找树(Binary Search Tree,简称BST),它可以是一棵空树,若非空时具有以下性质:
- 若根结点的左子树非空,则左子树上的所有结点的关键字均小于等于根节点的关键字值;
- 若根结点的右子树非空,则右子树上所有的结点的关键字均大于等于根节点的关键字值;
- 根结点的左、右子树也是二叉排序树;
在理想的情况下,二叉查找树增删改查的时间复杂度为O(logN)(其中N为结点数),最坏的情况下为O(N)。当它的高度为logN+1时,我们就说二叉查找树是平衡的。
什么是前驱和后继:
- 结点的前驱:是该结点的左子树中的最大结点;
- 结点的后继:是该结点的右子树中的最小结点;
也就是在中序遍历中,结点前、后的结点,就是结点的前驱和结点的后继。
其它请看这篇精彩博文,不再重复造轮子。