1.二叉排序树的特征
- 若左子树非空,则左子树上所有结点的值均小于根节点的值。
- 若右子树非空,则右子树上所有结点的值均大于根节点的值。
- 左、右子树也分别是一棵二叉排序树。
2.二叉排序树的查找
- 二叉排序树的查找是从根节点开始,沿某个分支逐层向下比较的过程。若二叉排序树非空,先将给定值与根节点的关键字比较。若相等,则查找成功;若不相等,如果小于根节点的关键字则在根节点的左子树上查找,否则在根节点的右子树上查找。
3.二叉排序树的的插入
- 二叉排序树作为一种动态树表,其特点是树的结构通常不是一次生成的,而是在查找过程中,当树中不存在关键字值等于给定值的结点时再进行插入的。
- 插入结点的过程如下:若原二叉排序树为空,则直接插入结点;否则,若关键字k小于根节点值,则插入左子树,若关键字k大于根节点值,则插入右子树。插入的结点一定是一个新添加的叶节点,且是查找失败时的查找路径上访问的最后一个结点的左孩子或者右孩子。
4.二叉排序树的删除
- 在二叉排序树中删除一个结点时,不能把以该结点为根的子树上的结点都删除,必须先把被删除结点从存储二叉排序树的链表上摘下,将因删除结点而断开的二叉链表