/*
 * โครงสร้างข้อมูล : ฉบับวาจาวา
 * http://www.cp.eng.chula.ac.th/~somchai/books
 */
package dataStructures;

/**
 * คลาสที่สร้างคอลเล็กชันด้วยต้นไม้ค้นหาแบบทวิภาค
 * @author สมชาย ประสิทธิ์จูตระกูล
 */
public class BSTCollection implements Collection {
  protected BSTree tree = new BSTree() {
    Node add(Node r, Object e) {
      if (r == null) {
        r = new Node(e, null, null);
        ++size;
      } else {
        int cmp = compare(e, r.element);
        if (cmp <= 0)
          r.left = add(r.left, e);
        else
          r.right = add(r.right, e);
      }
      return r;
    }
  };
  public int size() {
    return tree.size();
  }
  public boolean isEmpty() {
    return tree.isEmpty();
  }
  public boolean contains(Object e) {
    return tree.get(e) != null;
  }
  public void add(Object e) {
    tree.add(e);
  }
  public void remove(Object e) {
    tree.remove(e);
  }
}