Knowing your roots: object-oriented binary search trees revisited

  • Authors:
  • Joel C. Adams

  • Affiliations:
  • Department of Mathematics and Computer Science, Calvin College, Grand Rapids, MI

  • Venue:
  • ACM SIGCSE Bulletin
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

By applying object-oriented 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 non-empty 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 insertion problem in their order of development. The first solution uses a procedural programming technique, with the second and third solutions shifting to a more object-oriented approach. This chronology illustrates the author's ongoing battle to shift from procedural to object-oriented thinking.