/**
A binary tree to sort integers
*/
public class BinaryTree {
BinaryTreeNode root;
public BinaryTree() {
root = null;
}
private void addToSubTree(BinaryTreeNode n, int v) {
if (n!=null) // sanity check!
{
int nValue = ((Integer)n.getValue()).intValue();
if (v<=nValue) {
System.out.println("Adding "+v+" to left sub-tree of "+nValue);
if (n.getLeft()==null)
n.setLeft(new BinaryTreeNode(new Integer(v)));
else
addToSubTree(n.getLeft(), v);
}
else {
System.out.println("Adding "+v+" to right sub-tree of "+nValue);
if (n.getRight()==null)
n.setRight(new BinaryTreeNode(new Integer(v)));
else
addToSubTree(n.getRight(), v);
}
}
}
public void add(int v) {
if (root==null) {
System.out.println("Adding "+v+" to root.");
root = new BinaryTreeNode(new Integer(v));
}
else
addToSubTree(root, v);
}
private void inOrder(BinaryTreeNode n) {
if (n!=null) {
//switching right and left to print backwards
inOrder(n.getRight());
System.out.print(((Integer)n.getValue()).intValue()+" ");
inOrder(n.getLeft());
}
}
private void preOrder(BinaryTreeNode n)
{
if (n!=null) {
System.out.print(((Integer)n.getValue()).intValue()+" ");
preOrder(n.getLeft());
preOrder(n.getRight());
}}
private void postOrder(BinaryTreeNode n)
{
// this method is to be completed...
}
public void traversal()
{
System.out.print("preorder traversal: ");
preOrder(root);
System.out.println();
}
}