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

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

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

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

把数据直接放在树上

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

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

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

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

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

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

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

相关推荐
六毛的毛4 分钟前
重排链表问题
数据结构·链表
Fine姐32 分钟前
数据结构——02队列
数据结构
仰泳的熊猫40 分钟前
1176 The Closest Fibonacci Number
数据结构·c++·算法·pat考试
一条大祥脚44 分钟前
Cuda Rudece算子实现(附4090/h100测试)
java·数据结构·算法
2401_841495642 小时前
【LeetCode刷题】跳跃游戏
数据结构·python·算法·leetcode·游戏·贪心算法·数组
_w_z_j_2 小时前
全排列问题(包含重复数字与不可包含重复数字)
数据结构·算法·leetcode
@小码农3 小时前
LMCC大模型认证 青少年组 第一轮模拟样题
数据结构·人工智能·算法·蓝桥杯
CoderYanger3 小时前
A.每日一题——3606. 优惠券校验器
java·开发语言·数据结构·算法·leetcode
coderxiaohan3 小时前
【C++】哈希表实现
数据结构·哈希算法·散列表
CoderYanger3 小时前
D.二分查找-基础——744. 寻找比目标字母大的最小字母
java·开发语言·数据结构·算法·leetcode·职场和发展