如题,烦请留下源码

解决方案 »

  1.   

    JAVA实现二叉树遍历算法这篇文章就不错,一般都是用递归实现的,这篇文章中的算法里还给出了非递归的,LZ可以参考下
      

  2.   

    public class BinaryTreeTest  
       {  
      public static void main(String args[])  
       {  
      BinaryTreeTest b=new BinaryTreeTest();  
       
      int data[]={12,11,34,45,67,89,56,43,22,98};  
       BinaryTree root =new BinaryTree(data[0]);  
       System.out.print("二叉树的中的数据:  ");  
      for(int i=1;i<data.length;i++)  {  
       root.insertTree(root,data[i]);  
       System.out.print(data[i-1]+";");  
       }  
       System.out.println(data[data.length-1]);  
     int key=Integer.parseInt(args[0]);  
      if(b.searchkey(root,key))  
       {  
      System.out.println("找到了:"+key);  
       }  
       
      else  
       
       {  
       
      System.out.println("没有找到:"+key);  
       
       }  
       
      }  
       
      public boolean searchkey(BinaryTree root, int key)  
       
       {  
       
      boolean bl=false;  
       
      if(root==null)  
       
       {  
       
      bl=false;  
       
      return bl;  
       
       }  
       
      else if(root.data==key)  
       
       {  
       
      bl=true;  
       
      return bl;  
       
       }  
       
      else if(key>=root.data)  
       
       {  
       
      return searchkey(root.rightpoiter,key);  
       
       }  
       
      return searchkey(root.leftpoiter,key);  
       
       }  
       
      }  
       
      class BinaryTree  
       
       {  
       
      int data;  
       
       BinaryTree leftpoiter;  
       
       BinaryTree rightpoiter;  
       
       BinaryTree(int data)  
       
       {  
       
      this.data=data;  
       
       leftpoiter=null;  
       
       rightpoiter=null;  
       
       }  
       
      public void insertTree(BinaryTree root, int data)  
       
       {  
       
      if(data>=root.data)  
       
       {  
       
      if(root.rightpoiter==null)  
       
       {  
       
      root.rightpoiter=new BinaryTree(data);  
       
       }  
       
      else  
       
       {  
       
       insertTree(root.rightpoiter,data);  
       
       }  
       
      }  
       
      else  
       
       {  
       
      if(root.leftpoiter==null)  
       
       {  
       
      root.leftpoiter=new BinaryTree(data);  
       
       }  
       
      else  
       
       {  
       
       insertTree(root.leftpoiter,data);  
       
       }  
       
      }  
       
       }  
       
      }  
       
      //end