 
Summary: Knowing Your Roots:
ObjectOriented Binary Search Trees Revisited
Joel C. Adams
Department of Mathematics and Computer Science
Calvin College
Grand Rapids, MI 49546
adams@calvin.edu
Abstract
By applying objectoriented design to the definition of
a binary search tree, Berman and Duvall [1] designed a data
structure comprised of three classes: (i) an EmptyBST class
to model empty binary search trees, (ii) a NonEmptyBST
class to model nonempty binary search trees, and (iii) a
BST base class for common attributes of EmptyBST and
NonEmptyBST objects. That paper noted the problem of
inserting new values into such a structure: since insertions
occur at an EmptyBST object, an EmptyBST would have to
"turn into" a NonEmptyBST; a behavior beyond the
capabilities of the classes in most languages.
This paper presents three C++ solutions to the
