一、问题需求
当表插入、删除操作频繁时,为维护表的有序性,需要移动表中的很多记录。这时需要改用动态查找表,表的结构在查找过程中动态生成,对于给定的key值如果表中存在,则返回成功,否则插入关键字等于key的记录
二、二叉排序树的定义
二叉排序树又称二叉搜索树,二叉查找树,二叉排序树或是空树,或是满足如下性质的二叉树:
(1)若其左子树非空,则左子树上所有的结点的值均小于根结点的值。
(2)若其右子树非空,则右子树上所有的结点的值均大于根结点的值;
(3)其左子树本身又是一颗二叉排序树
二、二叉排序树的性质
中序遍历非空的二叉树排序树所得到的数据元素序列是一个按照关键字排列的递增有序序列
三、二叉排序树的查找
若查找的关键字等于根结点,成功
否则,若小于根结点,查其左子树,若大于根结点,查其右子树,在左右子树上进行类似操作
代码形式:
typedef struct{
KeyType key;
....