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); }
}