写在前面:
定义见上一篇文章
代码:

Java代码 Java实现最大二叉堆中找min<=x<max的x们  _Java Java实现最大二叉堆中找min<=x<max的x们  _叉_02
  1. /**  
  2.      * @description 最大二叉树中找a<=x<b的x  
  3.      * @param min  
  4.      * @param max  
  5.      * @param array  
  6.      * @return  
  7.      *   
  8.      * @author LynnWong  
  9.      */  
  10.     private int[] getX(int min,int max,int[] array){   
  11.         int rootSite = 0;   
  12.         int n = 0;   
  13.         int [] XArray = new int[array.length];   
  14.         while(rootSite<array.length-1){   
  15.             int root = array[rootSite];   
  16.             if(root>min||root==min){   
  17.                 if((rootSite*2+1<array.length-1)&&(min==array[rootSite*2+1]||min<array[rootSite*2+1])&&array[rootSite*2+1] <max){   
  18.                     XArray[n++]=array[rootSite*2+1];   
  19.                 }   
  20.                 if((rootSite*2+1<array.length-1)&&(min==array[rootSite*2+2]||min<array[rootSite*2+2])&&array[rootSite*2+2] <max){   
  21.                     XArray[n++]=array[rootSite*2+2];   
  22.                 }   
  23.             }else  
  24.                 break;   
  25.             rootSite++;   
  26.         }   
  27.            
  28.         return XArray;   
  29.     }