/* File: bst.H Copyright glh 8/15/94 */ #ifndef BSTH #define BSTH #include #include #include "bintree.H" template class BST : private virtual BinaryTree { protected: Bnode* SubtreeMin(Bnode*) const; Bnode* SubtreeMax(Bnode*) const; Bnode* Search(Bnode*, int key, Boolean& success) const; public: BST() : BinaryTree() {} BST(const T& elm) : BinaryTree(elm) {} T& Search(int key, Boolean& success) const; Boolean Insert(T item); Boolean Delete(int key); T& Minimum(Boolean& success) const; T& Maximum(Boolean& success) const; T& Predecessor(int key, Boolean& success) const; T& Successor(int key, Boolean& success) const; BST& operator=(const BST&); friend ostream& operator<<(ostream& os, const BST& tree) {return operator<<(os, (BinaryTree)tree);} }; #endif