java——二叉树的实现

class BinaryTree
{
 private Node root;
 public void add(int data)
 {
  if(root==null)
  {
   root = new Node(data);
  }
  else
  {
   root.addNode(data);
  }
  
 }
 public void print()
 {
  root.printNode();
 }
 
  private class Node   //内部类递归调用实现
  {
   private int data;
   private Node left;
   private Node right;
   public Node(int data)
   {
    this.data = data;
   }
  
   private void addNode(int data )
   {
    if(this.data>data)
    {
     if(this.left==null)
     {
      this.left = new Node(data);  //递归实现增加节点
     }
     else
     {
      this.left.addNode(data);
     }
    }
    else
    {
     if(this.right==null)
     {
      this.right = new Node(data);
     }
     else
     {
      this.right.addNode(data);
     }
    }
   
   
   }
   private void printNode()
   {
    if(this.left!=null)
    {
     this.left.printNode();
    }
    System.out.print(this.data+"->");
    if(this.right!=null)
    {
     this.right.printNode();
    }
   }
  
  }
}

public class Test {
 public static void main(String[] args)
 {
  //eg:8,10,4,6,12,90,13,3,7.
  BinaryTree bt = new BinaryTree();
  bt.add(8);
  bt.add(10);
  bt.add(4);
  bt.add(6);
  bt.add(12);
  bt.add(90);
  bt.add(13);
  bt.add(3);
  bt.add(7);
  bt.print();
 }
}
posted @ 2020-02-21 16:56  打开太阳  阅读(129)  评论(0编辑  收藏  举报