package treemethods;
/*
    Binary Search Tree implementation.  In this implementation, each node contains a data
    item and references to the next node in the list.
*/

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class BinarySearchTree extends BinaryTree
{

  BinarySearchTree(){
    super();
  }

  BinarySearchTree(Object obj,BinarySearchTree left,BinarySearchTree right)
  {
    super(obj,left,right);
  }

  public BinarySearchTree bstLeft(){
    return (BinarySearchTree)left;
    }

  public BinarySearchTree bstRight(){
    return (BinarySearchTree)right;
    }

  public boolean add(Object data){
    Comparable cdata = (Comparable) data;
      if(isEmpty()){
        this.data = data;
        left = new BinarySearchTree();
        right = new BinarySearchTree();
        return true;
      }
    else if(cdata.compareTo(this.data)==0){
      return false;
      }
    else if (cdata.compareTo(this.data) < 0)
      return bstLeft().add(data);
    else
      return bstRight().add(data);
  }

  public Object remove(Object key){return null;}




}




