写在前面:
定义见上一篇文章
代码:
- /**
- * @description 最大二叉树中找a<=x<b的x
- * @param min
- * @param max
- * @param array
- * @return
- *
- * @author LynnWong
- */
- private int[] getX(int min,int max,int[] array){
- int rootSite = 0;
- int n = 0;
- int [] XArray = new int[array.length];
- while(rootSite<array.length-1){
- int root = array[rootSite];
- if(root>min||root==min){
- if((rootSite*2+1<array.length-1)&&(min==array[rootSite*2+1]||min<array[rootSite*2+1])&&array[rootSite*2+1] <max){
- XArray[n++]=array[rootSite*2+1];
- }
- if((rootSite*2+1<array.length-1)&&(min==array[rootSite*2+2]||min<array[rootSite*2+2])&&array[rootSite*2+2] <max){
- XArray[n++]=array[rootSite*2+2];
- }
- }else
- break;
- rootSite++;
- }
- return XArray;
- }