- 二叉排序树的定义
- 查找操作
- 插入操作
- 删除操作
- 查找效率分析——平均查找长度ASL
- 平衡二叉树(二叉排序树的引申概念)
二叉排序树的定义
二叉排序树,又称二叉查找树(BST,Binary Search Tree)
一棵二叉树或者是空二叉树,或者是具有如下性质的二叉树:
1、左子树上所有结点的关键字均小于根结点的关键字;
2、右子树上所有结点的关键字均大于根结点的关键字。
左子树与右子树各是一棵二叉排序树。
左子树结点值<根结点值<右子树结点值
如果对二叉排序树进行中序遍历,可以得到一个递增的有序序列。
二叉排序树可以用于元素有序组织、搜索。
二叉排序树的查找
若树非空,目标值与根结点的值比较:
1、若相等,则查找成功;
2、若小于根结点,则在左子树上查找,否则在右子树上查找。
查找成功,返回结点指针;查找失败返回NULL。
例1:查找关键字为30的结点。
从根结点出发,我们要找的值30>根结点19,根据排序树的特性,要找的结点一定在右子树中。
让指向根结点的指针,往根结点的右孩子方向走,指向50,30<50;
让指向50的指针,往50的左孩子方向走,指向26,30>26;
让指向26的指针,往26的右孩子方向走,指向30,找到结点。
//二叉