java:手写二叉树BinaryTree添加和查询方法

package arrays.myArray;

public class BinaryTree {
 private Node root;

 // 添加数据
 public void add(int data) {
  // 递归调用
  if (null == root)
   root = new Node(data, null, null);
  else
   addTree(root, data);
 }

 private void addTree(Node rootNode, int data) {
  // 添加到左边
  if (rootNode.data > data) {
   if (rootNode.left == null)
    rootNode.left = new Node(data, null, null);
   else
    addTree(rootNode.left, data);
  } else {
   // 添加到右边
   if (rootNode.right == null)
    rootNode.right = new Node(data, null, null);
   else
    addTree(rootNode.right, data);

  }
 }

 // 查询数据
 public void show() {
  showTree(root);
 }

 private void showTree(Node node) {
  if (node.left != null) {
   showTree(node.left);
  }
  System.out.println(node.data);
  if (node.right != null) {
   showTree(node.right);
  }
 }
}

class Node {
 int data;
 Node left;
 Node right;

 public Node(int data, Node left, Node right) {
  this.data = data;
  this.left = left;
  this.right = right;
 }
}

posted on 2010-05-17 12:24  快乐每一天Joe  阅读(454)  评论(0编辑  收藏  举报

导航