数据结构:4.1.1二叉搜素树及查找

静态查找:要找的集合的元素是不动的,主要是find操作,没有delete操作

动态查找:要查找的集合会经常发生插入删除的操作

静态查找的一个很好的方法就是二分查找

把数据直接放在树上

结点右子树的值>结点的值>结点左子树的值

Find函数两个参数,一个要查找的元素X,一个树BST

实现的方式不仅是递归而且是尾递归, 即程序最后要返回的时候递归,从遍历的角度讲尾递归都可以用循环来实现

而 对同样的n个结点来说,查找的效率又与树的结构有关

最坏的情况:只有左儿子或只有右儿子,形成一条链,高度是n-1

所以我们喜欢的是平衡一点的树,这就是之后要学的二叉平衡树。

为什么这两个程序的写法不一样啊???

相关推荐
HY小海12 小时前
【C++】AVL树实现
开发语言·数据结构·c++
花月C12 小时前
高效查找数据的数据结构—MySQL 索引
数据结构·数据库·mysql
仰泳的熊猫12 小时前
LeetCode:701. 二叉搜索树中的插入操作
数据结构·c++·算法·leetcode
小L~~~15 小时前
2025吉比特-游戏引擎开发-一面复盘
数据结构·算法·游戏引擎
potato_may16 小时前
第18讲:C语言内存函数
c语言·数据结构·算法
仰泳的熊猫17 小时前
LeetCode:95. 不同的二叉搜索树 II
数据结构·c++·算法·leetcode
Nix Lockhart17 小时前
《算法与数据结构》第七章[算法4]:最短路径
c语言·数据结构·学习·算法·图论
xxxxxxllllllshi17 小时前
Cookie、Session、JWT、SSO,网站与 APP 登录持久化与缓存
java·开发语言·jvm·数据结构·缓存·面试
liu****18 小时前
笔试强训(六)
数据结构·c++·算法
草莓工作室19 小时前
数据结构5:线性表5-循环链表
数据结构·循环链表