class BinaryTree {

 static class Node {
  char data;
  Node left;
  Node right;
  int i;
 }

 public static char[] dataArray = new char[] { 'a', 'b', ' ', 'd' };

 public static Node creatRoot(Node node) {
  if (node.i < dataArray.length) {
   if (node.data == ' ')
    node = null;
   if (node != null)
    node.data = dataArray[node.i];
   node.left = creatLeft(node);
   node.right = creatRight(node);

  }
  return node;
 }

 public static Node creatLeft(Node node) {
  if (node != null) {
   node.left = new Node();
   node.left.i = 2 * node.i + 1;
   creatRoot(node.left);
  }
  return node.left;

 }

 public static Node creatRight(Node node) {
  if (node != null) {
   node.right = new Node();
   node.right.i = 2 * node.i + 2;
   creatRoot(node.right);
  }
  return node.right;
 }

 public static void main(String args[]) {
  Node node = new Node();

  node = creatRoot(node);

  System.out.print(node.data + " " + node.left.data + " "
    + node.right.data + " " + node.left.left.data);

 }

}

更多推荐