本篇文章将介绍二叉排序树的查找算法。
何为二叉排序树查找?
上篇文章我们学习了折半查找,虽然折半查找算法将查找效率提高了,但是折半查找要求序列有序,所以当表插入、删除操作频繁的时候,为了维护表的有序性,就需要移动大量的元素,此时用折半查找显然事倍功半了。
那么有没有一种办法能够让查找效率依然高,而且可以很容易地实现插入、删除呢?基于此,我们可以改用动态查找表,这种表结构是在查找过程中动态生成的。动态查找表根据用途不同,可以分为:
- 二叉排序树
- 平衡二叉树
- 红黑树
- B-树
- B+树
- 键树
本篇文章重点介绍二叉排序树。
二叉排序树又称为二叉搜索树、二叉查找树,其定义如下:
二叉排序树或是空树,或是满足如下性质的二叉树:
- 若其左子树非空,则左子树上所有结点的值均小于根结点的值
- 若其右子树非空,则右子树上所有结点的值均大于等于根结点的值
- 其左右子树本身又是一棵二叉排序树
如下图为一棵二叉排序树:
<