Tuesday, November 17, 2009

Homework 8 Solution

Below is my solution for the Binary Search Tree:
public class BinarySearchTree {

 
private BinarySearchTree left;
 
 
private BinarySearchTree right;
 
 
private int data;
 
 
public BinarySearchTree() {
  left
= null;
  right
= null;
 
}
 
 
/** Create a tree that consists of just one node with no children. */
 
public BinarySearchTree(int data) {
  left
= null;
  right
= null;
 
this.data = data;
 
}
 
 
/** Adds new number n to this BinarySearchTree, placing it in its correct place.
  *
  * @param n the number to be added
  */

 
public void add (int n) {
 
if (n <= data) {
   
if (left != null)
    left
.add(n);
   
else
    left
= new BinarySearchTree(n);
 
}
 
else { // n > data
   
if (right != null)
    right
.add(n);
   
else
    right
= new BinarySearchTree(n);
 
}
 
}
 
 
/** Returns the maximum number in this tree. */
 
public int max() {
 
if (right == null)
   
return data;
 
return right.max();
 
}
 
 
/** Returns the height of this tree. */
 
public int height() {
 
//The base cases are when a child is null.
 
return 1 + Math.max((left == null ? 0: left.height()),
       
(right == null ? 0: right.height()));
 
}
}

No comments: