`
weicong0468
  • 浏览: 8686 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用java写二叉树算法,实现添加数据形成二叉树功能

阅读更多
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