`
FanfanWing
  • 浏览: 61782 次
  • 性别: Icon_minigender_1
  • 来自: 澳门
社区版块
存档分类
最新评论

二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来

阅读更多
import   java.io.*;     
  import   java.util.Stack;     
      
  public   class   myTest   {     
  private   myTree   tree;     
      
      
  /**    
  *二叉树的插入,参数为(关键字,数据)    
  *    
  **/     
  public   void   insert(int   key,   int   data)     
  {     
  if(tree   ==   null)     
  {     
  tree   =   new   myTree();     
  tree.key   =   key;     
  tree.data   =   data;     
  }     
  else     
  {     
  myTree   newTree   =   new   myTree();     
  newTree.key   =   key;     
  newTree.data   =   data;     
  myTree   parent   =   tree;     
  while(true)     
  {     
  if(   newTree.key   <   parent.key)     
  {     
  if(   parent.leftChild   ==   null)     
  {     
  parent.leftChild   =   newTree;     
  return;     
  }     
  else     
  {     
  parent   =   parent.leftChild;     
  }     
  }     
  else   if(   newTree.key   >   parent.key)     
  {     
  if(parent.rightChild   ==   null)     
  {     
  parent.rightChild   =   newTree;     
  return;     
  }     
  else     
  {     
  parent   =   parent.rightChild;     
  }     
  }     
  }     
      
  }     
  }     
      
  /**    
    *   二叉树的查找,参数为(关键字),返回值为   myTree的一个实例    
    *      
    *   **/     
  public   myTree   find(int   key)     
  {     
  if(   tree   ==   null   )   return   null;     
  myTree   curr   =   new   myTree();     
  curr.key   =   key;     
  myTree   parent   =   tree;     
  while(true)     
  {     
  if(   parent   ==   null)     
  {     
  return   null;     
  }     
  else   if(   curr.key   ==   parent.key)     
  {     
  return   parent;     
  }     
  else   if(   curr.key   >   parent.key)     
  {     
  parent   =   parent.rightChild;     
  }     
  else   if(   curr.key   <   parent.key)     
  {     
  parent   =   parent.leftChild;     
  }     
  }     
  }     
      
      
      
  /*    
    *      
    *   递归的二叉树中序遍历    
    *      
    *      
    */     
  private   static   void   midOrder(myTree   tree)     
  {     
  if(tree   !=   null   )     
  {     
  midOrder(tree.leftChild);     
  System.out.println(tree+","+tree.key+","+tree.data);     
  midOrder(tree.rightChild);     
  }     
  }     
      
                        
  /*    
    *   前序遍历      
    */     
  private   static   void   frontOrder(myTree   tree)     
  {     
  if(tree   !=   null)     
  {     
  System.out.println(""+tree.key+"   ,   "+tree.data);     
  frontOrder(tree.leftChild);     
  frontOrder(tree.rightChild);     
  }     
  }     
      
      
  public   static   void   main(String[]   args)       
  {     
  System.out.println("Tree   view   Begin");     
  myTest   t1   =   new   myTest();     
  t1.insert(8,25);     
  t1.insert(5,9);     
  t1.insert(58,87);     
  t1.insert(13,82);     
  t1.insert(4,8);     
  t1.insert(12,54);     
  t1.insert(53,123);     
  t1.insert(56,47);     
  t1.insert(2,75);     
  t1.insert(34,5);     
  t1.insert(6,23);     
  System.out.println("现在开始遍历:");     
  midOrder2(t1.tree);     
  midOrder(t1.tree);     
  }     
  }  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics