/* * ObjectTreeInterface.java * * Created on Jun 10, 2007 * * by Donald Yessick */ /** * ObjectTreeInterface * @author Donald Yessick * @ */ public interface CS220_BinarySearchTree_Interface { /** * insert adds key data pair to tree * @param key * @param data */ void insert(Comparable key, Object data); /** * remove object matching key from tree * @param key * @return the object removed */ Object remove(Comparable key); /** * find data associated with key * @param key * @return the object or null */ Object find(Comparable key); /** * isEmpty * @return true if empty */ boolean isEmpty(); /** * getCount returns the number of items stored * @return the count */ int getCount(); /** * getHeight determines the depth of the tree * @return max depth */ int getHeight(); /** * getMinimum finds smallest value stored * @return smallest key */ Comparable getMinimum(); /** * getMaximum finds largest * @return largest key */ Comparable getMaximum(); /** * getRoot finds root of tree * @return key of root */ Comparable getRoot(); /** * inOrder returns a vector of elements * @return objects stored in a vector */ CS220_Vector_Interface inOrder(); /** * preOrder returns a vector of elements * @return objects stored in a vector */ CS220_Vector_Interface preOrder(); /** * postOrder returns a vector of elements * @return objects stored in a vector */ CS220_Vector_Interface postOrder(); /** * levelOrder returns a vector of elements * @return objects stored in a vector */ CS220_Vector_Interface levelOrder(); /** * inOrder visits objects in order * @param visitor */ void inOrder(CS220_Visitor_Interface visitor); /** * preOrder visits objects preorder * @param visitor */ void preOrder(CS220_Visitor_Interface visitor); /** * postOrder visits objects in post order * @param visitor */ void postOrder(CS220_Visitor_Interface visitor); /** * levelOrder visits objects in level order * @param visitor */ void levelOrder(CS220_Visitor_Interface visitor); }