二叉排序树
二叉排序树(Binary Sort Tree),又叫二叉查找树。
它是一棵空树或者是具有以下性质的数
- 左子树不为空,左子树所有节点的值均小于自身根节点的值
- 右子树不为空,右子树所有节点的值均大于自身根节点的值
- 左右子树也是二叉排序树
二叉排序树-查找
- 递归查找二叉排序树
- 若查找成功则指针指向该元素节点true
- 否则指针指向查找路径上访问的最后一个节点返回false
算法实现
1 | // SearchBST为递归函数,lchild为左孩子,rchild为右孩子 |
算法分析
- 二叉排序树的查找运用了构造二叉树的特性,节点中满足一定的次序关系即:左子树节点一定比其双亲节点小,右子树节点一定比其双亲节点大
- 最少查找为1
- 最多查找为二叉排序树的深度
- 二叉排序树的查找性能取决于二叉排序树的形状(深度)