二叉搜索树
特性:
二叉搜索树(二叉排序树、二叉查找树)或者是一颗空树;或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上的所有结点的值均小于它的根结点的值;(2)若它的右子树不空,则右子树上的所有结点的值均大于它的根结点的值;(3)它的左、右子树也分别为二叉搜索树。中序遍历可以得到一个有序序列。
查找:
这个比较容易。
插入:
这个比较容易。新插入的结点一定是一个新添加的叶子结点。
删除:
假设删除的结点为x,分为三种情况:
1、如果x没有孩子结点,那么只是简单地将它删除,并修改它的父节点,用空指针作为孩子结点来替换x。
2、如果x有一个孩子结点,那么将这个孩子结点提升到x原来的位置,并修改X的父节点,用x的孩子结点来替换x。
3、如果x有两个孩子结点,那么找到x的后继y(一定在x的右子树中),并让y占据树中x的位置。后面可能还需要做些调整。