搜索树这个数据结果支持很多动态的操作:搜索、最小值啦、最大值,插入和删除,当然也可以作为词典以及优先级队列。
啥是二叉搜索树
上图便是二叉搜索树,一个父节点最大分两个叉,并且左孩子子树的所有节点小于等于父节点,右孩子子树的所有节点大于等于父节点。
这样就可以通过访问根节点顺序的不同递归遍历这样的二叉搜索树,这就是我们所熟知的:前序遍历,中序遍历,后序遍历。
上图伪代码是中序遍历,其实中序遍历二叉搜索树,就是按从小到大的顺序输出了各个元素,时间复杂是O(n),为什么呢,走直觉啊,其实证明也不难啦,自己去看看书里面人家公式是怎么推得就明白了。
访问二叉搜索树
我们经常需要搜索一个二叉搜索树。比如找到树种的最小值、最大值什么的,这里介绍一下这些操作是怎么用O(h)的时间来进行这些操作的,其中h是树的高度。
搜索:
用一个key值去查找中这个key值得元素。给定一个根节点的指针和一个Key k, TREE-SEARCH返回key=k的节点,如果不存在,返回NULL。

本文介绍了二叉搜索树的基本概念,包括前序、中序和后序遍历。重点讨论了中序遍历实现有序输出的特点,以及如何在O(h)时间复杂度内进行搜索、求最小值和最大值的操作。此外,还探讨了插入和删除节点的策略,以保持二叉搜索树的特性。

899

被折叠的 条评论
为什么被折叠?



