二叉树结构及查找元素

  1. 1.BinaryTree.java   
  2. /**  
  3.  * 前序遍历二叉树。先根结点,再左结点,  
  4.  * 如无再右结点,如此递归至搜索完毕。  
  5.  */  
  6. package com.binarytree;   
  7. public class BinaryTree {   
  8.  int data;   
  9.  BinaryTree leftpoiter;   
  10.  BinaryTree rightpoiter;   
  11.  BinaryTree(int data) {   
  12.   this.data = data;   
  13.   leftpoiter = null;   
  14.   rightpoiter = null;   
  15.  }   
  16.  public void insertTree(BinaryTree root, int data) {   
  17.   if (data >= root.data) {   
  18.    if (root.rightpoiter == null) {   
  19.     root.rightpoiter = new BinaryTree(data);   
  20.    } else {   
  21.     insertTree(root.rightpoiter, data);   
  22.    }   
  23.   } else {   
  24.    if (root.leftpoiter == null) {   
  25.     root.leftpoiter = new BinaryTree(data);   
  26.    } else {   
  27.     insertTree(root.leftpoiter, data);   
  28.    }   
  29.   }   
  30.  }   
  31. }   
  32.   
  33. 2.BinaryTreeTest.java   
  34. package com.binarytree;   
  35. public class BinaryTreeTest {   
  36.  public static void main(String args[])   
  37.  {   
  38.  BinaryTreeTest b=new BinaryTreeTest();   
  39.  int data[]={12,11,34,45,67,89,56,43,22,98};   
  40.  BinaryTree root =new BinaryTree(data[0]);   
  41.  System.out.print("二叉树的中的数据:  ");   
  42.  for(int i=1;i<data.length;i++){   
  43.  root.insertTree(root,data[i]);   
  44.  System.out.print(data[i-1]+";");   
  45.  }   
  46.  System.out.println(data[data.length-1]);   
  47.  int key=Integer.parseInt(args[0]);   
  48.  if(b.searchkey(root,key))   
  49.  {   
  50.  System.out.println("找到了:"+key);   
  51.  }   
  52.  else  
  53.  {   
  54.  System.out.println("没有找到:"+key);   
  55.  }   
  56.  }   
  57.  public boolean searchkey(BinaryTree root, int key)   
  58.  {   
  59.  boolean bl=false;   
  60.  if(root==null)   
  61.  {   
  62.  bl=false;   
  63.  return bl;   
  64.  }   
  65.  else if(root.data==key)   
  66.  {   
  67.  bl=true;   
  68.  return bl;   
  69.  }   
  70.  else if(key>=root.data)   
  71.  {   
  72.  return searchkey(root.rightpoiter,key);   
  73.  }   
  74.  return searchkey(root.leftpoiter,key);   
  75.  }   

你可能感兴趣的:(数据结构)