Cover Data Structures and Algorithms with Object-Oriented Design Patterns in Java
next up previous contents index

insert and attachKey Methods

The insert method of the BinarySearchTree class is defined in Program gif. This method takes as its argument the object which is to be inserted into the binary search tree. It is assumed in this implementation that duplicate keys are not permitted. That is, all of the keys contained in the tree are unique.

   program18572
Program: BinarySearchTree class insert, attachKey and balance methods.

The insert method behaves like the find method until it arrives at an external, empty node. Once the empty node has been found, it is transformed into an internal node by calling the attachKey method. attachKey works as follows: The object being inserted is assigned to the key field and two new empty binary trees are attached to the node.

Notice that after the insertion is done, the balance method is called. However, as shown in Program gif, the BinarySearchTree.Balance method does nothing. (Section gif describes the class AVLTree which is derived from the BinarySearchTree class and which inherits the insert method but overrides the balance operation).

The asymptotic running time of the insert method is the same as that of find for an unsuccessful search. That is, in the worst case the running time is tex2html_wrap_inline63682 and the average case running time is

displaymath63680

where tex2html_wrap_inline63684 is the average depth of an external node in a binary search tree with n internal nodes. When tex2html_wrap_inline63662, the worst case running time is O(n) and the average case is tex2html_wrap_inline58840.


next up previous contents index

Bruno Copyright © 1998 by Bruno R. Preiss, P.Eng. All rights reserved.