二叉搜索树中求得给定元素的下界
来源:互联网 发布:mac pro玩dota2帧数 编辑:程序博客网 时间:2024/06/05 14:20
public static BianrySearchTreeNode FloorInBST(BianrySearchTreeNode root,int data){if(root==null)return null;if(root.getData()==data)return root;if(data<root.getData()){ //查询值小于当前节点的值if(data<FindMin(root).getData())//小于整个树的最小值return null;if(data>=FindMax(root.getLeft()).getData())return FindMax(root.getLeft());elsereturn FloorInBST(root.getLeft(),data);}if(root.getData()<data){ //查询值大于当前节点的值if(data>=FindMax(root.getRight()).getData())// 大于整棵树的最大值return FindMax(root);if(data<FindMin(root.getRight()).getData())//小于右子树的最小值return root;elsereturn FloorInBST(root.getRight(),data);}return null;}
顺便记录一下FindMax与FindMin的函数如下:
//搜索最小元素public static BianrySearchTreeNode FindMin(BianrySearchTreeNode root){if(root==null)return null;while(root.getLeft()!=null)root = root.getLeft();return root;}//搜索最大元素public static BianrySearchTreeNode FindMax(BianrySearchTreeNode root){if(root==null)return null;while(root.getRight()!=null)root = root.getRight();return root;}
0 0
- 二叉搜索树中求得给定元素的下界
- 算法导论第十二章关于搜索二叉树的建立,查询,查找最大最小元素值,查找给定结点的直接后继
- 给定二叉搜索树和两个整数A,B (最小整数和最大整数)。如何删除不在该区间内的元素(剪枝)
- 判断给定的数组是否为二叉搜索树的后序遍历序列
- 删除数组中给定的元素
- 判断给定数组是不是二叉搜索树的后序遍历
- 给定一个有序的链表或者数组,构造一棵二叉搜索树
- 二叉搜索树两点之和等于给定值
- leetcode 99. Recover Binary Search Tree BST二叉搜索树的两元素交换的恢复 + 中序遍历
- 去掉数组中与给定元素相同的元素
- python求解矩阵搜索问题,矩阵中每一行和第一列都是递增的 给定一个元素查找矩阵中是否存在该元素
- 在给定的数组中找出两个元素和为给定值的所有元素对
- 在给定的数组中找出两个元素和为给定值的所有元素对
- 二叉树的建立、遍历,以及给定二叉树前序遍历和中序遍历重建二叉树问题。
- 什么是二叉搜索树、二叉搜索树的查找(递归或循环)和二叉搜索树的查找最大最小元素
- 《剑指offer》给定一颗二叉搜索树,请找出其中的第k大的结点。
- 给定n,生成存储值1 ... n的所有结构唯一的BST(二叉搜索树)。
- 给定一个有序数组,元素各不相同且升序排列,创建一个高度最小的二叉查找树
- Struts2入门--一个简单的登录案例
- oracle数据库冷备迁移的步骤
- 重新认识 ThreadLocal 以及内存泄漏问题
- 将日期从long转换成string
- leetcode 64 Minimum Path Sum C++
- 二叉搜索树中求得给定元素的下界
- Ubuntu14.04下安装并开启SSH服务
- web前端面试问题总结
- SQL语句总结
- 想要让Mac磁盘瞬间“瘦身”吗
- 用for循环去重
- Sort Characters By Frequency
- 家用无线路由器的相关参数设置
- java之断点续传简单实现