查找之二:树表
1 二叉排序树(Binary Sort Tree,BST)
1.1 BST的定义
也叫二叉查找树,可以为空。中序遍历可以得到一个递增的有序序列。
具有以下特性:
- 若左子树非空,左子树所有结点均小于根结点;
- 若右子树非空,右子树所有结点均大于根结点;
- 左、右子树仍为一棵二叉排序树。
1.2 BST的查找
从根结点开始,沿某个分支逐层向下比较的过程。若相等,则查找成功;若不相等,如果小于根结点的关键字,则在根结点的左子树上查找,否则,在根结点的右子树上查找。(递归)
1.3 BST的插入
新插入的结点一定是叶子结点,且是查找失败时查找路径上访问的最后一个结点的左孩子或者右孩子。
- 若二叉排序树为空,直接插入节点;
- 若关键字 key 小于根结点,则插入到左子树;
- 若关键字 key 大于根结点,则插入到右子树中;
int BST_Insert(BiTree &T,KeyType k){
if(