当前位置:网站首页>二叉查找树的查找
二叉查找树的查找
2022-08-02 16:58:00 【chengqiuming】
一 点睛
因为二叉查找树的中序遍历的有序性,所以查找与二分法查找类似,每次都缩小查找范围,查找效率较高。
二 算法步骤
1 若二叉查找树为空,查找失败,则返回空。
2 若二叉查找树非空,则将待查找的关键字 x 与根节点关键字 T.data 进行比较
若 x== T.data,查找成功,则返回 T。
若 x<T.data,则递归查找左子树。
若 x>t.data,则递归查找右子树。
三 图解
1 二叉查找树如下,查找关键字 32
2 第一次查找
3 第二次查找
4 第三次查找
四 代码
// 二叉排序树的递归查找
static public TreeNode search(TreeNode root, int val) {
// 若查找成功,则返回指向该数据元素结点的指针,否则返回空指针
if ((root == null) || val == root.val)
return root;
else if (val < root.val)
return search(root.left, val); // 在左子树中继续查找
else
return search(root.right, val); // 在右子树中继续查找
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
}
边栏推荐
- Timestamp formatting "recommended collection"
- ECCV 2022 | 清华&腾讯AI Lab提出REALY:重新思考3D人脸重建的评估方法
- 金仓数据库KingbaseES安全指南--6.10. Peer身份验证
- JWT原理详解_电磁感应现象原理
- 边界访问的空间权限
- 融云「 IM 进阶实战高手课」系列直播上线
- Oracle 11 g rac finished patch, dbca new patches of SQL database also needs to perform?
- LeetCode·76.最小覆盖子串·滑动窗口
- JS数组删除其中一个元素
- SQL Statement Basics
猜你喜欢
随机推荐
蔚来杯2022牛客暑期多校训练营5 ABCDFGHK
Special Variables (SQL)
【无标题】
Gartner发布,年度Challenger!
内网渗透之kerberos认证(三)
电烙铁的基础知识
一些与开发者体验有关的话题
持续交付(一)JenkinsAPI接口调用
持续集成(五)Jenkins配置父子job
DeepMind 首席科学家 Oriol Vinyals 最新访谈:通用 AI 的未来是强交互式元学习
默认参数的代码实现及日期的注入与显示
JS数组删除其中一个元素
Kubernetes:(七)优化大法(江湖失传已久的武林秘籍)
什么是实时流引擎?
Locking and Concurrency Control (2)
golang源码分析(8):m、p、g、shedt、sudog
【电子器件笔记6】三极管(BJT)参数和选型
金仓数据库 OCCI 迁移指南(4. KingbaseES 的 OCCI 迁移指南)
golang刷leetcode动态规划(8)盈利计划
LeetCode·76.最小覆盖子串·滑动窗口