Friday, March 11, 2011

Binary Tree implementation

Binary Tree implementation...



import java.util.*;

public class NodeT {

int data;
NodeT left;
NodeT right;

public NodeT(int data) {this.data = data;}

public NodeT insert(NodeT n, int data) {
if (n == null) {
// create new node
n = (NodeT) new NodeT(data);
} else if (data > n.data) {
n.right = insert(n.right, data);
} else {
n.left = insert(n.left, data);
}
return n;
}

public void dumptree(NodeT tree, String tag) {
if (tree == null) return;
NodeT node = tree;
if (node != null) {
dumptree(node.left, "left");
System.out.println("data: "+node.data+" ("+tag+")");
dumptree(node.right, "right");
}
}

public void dump(NodeT tree, String tag) {
System.out.println("In-Order Dump ("+tag+")");
dumptree(tree, "root");
}

public static void main(String[] args) {
int array[] = { 3, 9, 1, 4, 8, 2, 5, 7, 0, 6 };
int i;

NodeT base = new NodeT(array[0]);
for (i = 1; i < 10; i++) {
String buffer = "Add node " + array[i];
base = base.insert(base, array[i]);
base.dump(base, buffer);
}
}
}


output:
In-Order Dump (Add node 9)
data: 3 (root)
data: 9 (right)
In-Order Dump (Add node 1)
data: 1 (left)
data: 3 (root)
data: 9 (right)
In-Order Dump (Add node 4)
data: 1 (left)
data: 3 (root)
data: 4 (left)
data: 9 (right)
In-Order Dump (Add node 8)
data: 1 (left)
data: 3 (root)
data: 4 (left)
data: 8 (right)
data: 9 (right)
In-Order Dump (Add node 2)
data: 1 (left)
data: 2 (right)
data: 3 (root)
data: 4 (left)
data: 8 (right)
data: 9 (right)
In-Order Dump (Add node 5)
data: 1 (left)
data: 2 (right)
data: 3 (root)
data: 4 (left)
data: 5 (left)
data: 8 (right)
data: 9 (right)
In-Order Dump (Add node 7)
data: 1 (left)
data: 2 (right)
data: 3 (root)
data: 4 (left)
data: 5 (left)
data: 7 (right)
data: 8 (right)
data: 9 (right)
In-Order Dump (Add node 0)
data: 0 (left)
data: 1 (left)
data: 2 (right)
data: 3 (root)
data: 4 (left)
data: 5 (left)
data: 7 (right)
data: 8 (right)
data: 9 (right)
In-Order Dump (Add node 6)
data: 0 (left)
data: 1 (left)
data: 2 (right)
data: 3 (root)
data: 4 (left)
data: 5 (left)
data: 6 (left)
data: 7 (right)
data: 8 (right)
data: 9 (right)

No comments:

Post a Comment