主要内容
前提
(可回顾“基本概念”)
若在查找的同时对表做插入、删除等修改操作,则被查找的表称为动态查找表,反之则称为静态查找表。
换句话说,动态查找表的表结构本身是在查找过程中动态生成的,即在创建表时,对于给定值,若表中存在其关键字等于给定值的记录,则返回“已存在此关键字”等信息;否则插入关键字等于给定值的记录。
线性表查找算法明显更适合静态查找表。
若要对动态查找表进行高效率的查找,可采用二叉树作为查找表的组织形式,这类查找表统称为树表。
二叉排序树(Binary Sort Tree)
二叉排序树又称二叉查找树,它是一种对排序和查找都很有用的特殊二叉树。
特征:
1)若左子树不为空,则左子树上所有结点的值一定小于根结点的值。在数据结构中,对应左子树上所有结点的关键字的值一定小于根结点的关键字的值,data.key > lchild->data.key。
2)若右子树不为空,则右子树上所有结点的值一定大于根结点的值。
3)左子树和右子树都为二叉排序树。(递归)
4)中序遍历二叉排序树可以得到一个结点值递增的有序线性表。
*判定树是特殊的二叉排序树。