二叉搜索树中求得给定元素的下界

来源:互联网 发布: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
原创粉丝点击