二叉搜索树
二叉搜索树又称为:二叉排序树,其也可以是一个空树,或者具有以下性质的树也可以被称为二叉搜索树:
1.若左子树不为空,对于任意节点,比其左子树中任意节点都大。
2.若右子树不为空,对于任意节点,比其右子树中任意节点都小。
3.最左侧的节点一定是最小的,最右侧的节点一定是最大的。
4.当对二叉搜索树进行中序遍历,得出来的是有序序列。
二叉搜索树的操作:
具体实现步骤以及代码:二叉搜索树操作
二叉搜索树的使用场景
用来进行查找的一棵树
两种模型:
1.纯K模型
例子:检测某个单词是否拼写正确。
用已经有的单词构造二叉搜索树,自己写一个树里的单词并在里面进行查找,若找不到则说明自己写错了。(类似于,查字典)。
2.Key-Value—键值对
例子:文件中包含了多个IP地址,知道每个IP地址出现的次数。
<IP,次数>
二叉搜索树性能
1.最优情况:左右子树中的节点个数比较均匀(完全二叉树)----O(logN)
2.最差情况:单支树—O(N)
如果二叉搜索树退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。并且该树失去平衡。