用 java 实现二叉树

package cglib;
/**
 * 说明生活中遇到的二叉树,用 java 实现二叉树 。
 * store(int value)能够选择二叉树中是否能够存在相同的值
 */  
public class BinaryTree {
     public int value;
     public BinaryTree right;
     public BinaryTree left;
     
     public static void main(String args[]){
         int[] data=new int[5];
         StringBuffer sb = new StringBuffer();
         for(int i=0;i<data.length;i++){
            data[i]=(int)(Math.random()*100)+1;//0+1<<x*100+1<<1*100+1  
             sb.append(data[i] + ",");  
         }
        
         int len = sb.length();
          if(len >0){
           sb.deleteCharAt(len-1);
          }//去掉最后一个逗号
          
          System.out.println(sb.toString());
          
         BinaryTree root = new BinaryTree();
         root.value = data[0];
         System.out.println("root.value="+root.value);
         for(int i=1; i<data.length; i++){  
             root.store(data[i]);  
         }
         System.out.println("root.find(5)="+root.find(5));
         root.preList();  
         System.out.println();  
         root.middleList();  
         System.out.println();  
         root.afterList();  
     }
     
     public void store(int value){
         System.out.println("存储value=" +value);
         System.out.println("store:this.value=" +this.value);
         if(value<this.value){  
             if(left==null){  
                 left = new BinaryTree();  
                 left.value=value;  
             }else{  
                 left.store(value);  
             }  
         }else if(value>this.value){  
             if(right==null){  
                 right = new BinaryTree();  
                 right.value=value;  
             }else{  
                 right.store(value);  
             }  
         }//已经存在的值,即值相等的值,不插入  
     }
     
     
     public boolean find(int value){
         System.out.println("找寻value=" +value);
         System.out.println("find:this.value=" +this.value);
        
         if(value ==this.value)
         {
         return true;
         }
         else if(value>this.value){
             if(right ==null){
                 return false;
             }
             return right.find(value);
         }else
         {
             if(left ==null){
                 return false;
             }
             return left.find(value);
             }
        
     }
     
     
     
   //先序遍历  
     public void preList(){  
         System.out.print(this.value+",");  
         if(left!=null)left.preList();  
         if(right!=null)right.preList();  
     }  
     
     //中序遍历  
     public void middleList(){  
        
         if(left!=null)left.middleList();  
         System.out.print(this.value+",");  
         if(right!=null)right.middleList();  
     }  
     
     public void afterList(){  
        
         if(left!=null)left.afterList();       
         if(right!=null)right.afterList();  
         System.out.print(this.value+",");  
     }  
    
    
}java

输出:app

47,8,45,72,34
root.value=47
存储value=8
store:this.value=47
存储value=45
store:this.value=47
存储value=45
store:this.value=8
存储value=72
store:this.value=47
存储value=34
store:this.value=47
存储value=34
store:this.value=8
存储value=34
store:this.value=45
找寻value=5
find:this.value=47
找寻value=5
find:this.value=8
root.find(5)=false
47,8,45,34,72,
8,34,45,47,72,
34,45,8,72,47,dom