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

Removing Items from an M-Way Search Tree

The algorithm for removing items from an M-way search tree follows directly from the algorithm for removing items from a binary search tree given in Section gif. The basic idea is that the item to be deleted is pushed down the tree from its initial position to a node from which it can be easily deleted. Clearly, items are easily deleted from leaf nodes. In addition, consider an internal node of an M-way search tree of the form

displaymath64518

If both tex2html_wrap_inline63334 and tex2html_wrap_inline62418 are empty trees, then the key tex2html_wrap_inline63336 can be deleted from T by removing both tex2html_wrap_inline63336 and tex2html_wrap_inline62418, say. If tex2html_wrap_inline63334 is non-empty, tex2html_wrap_inline63336 can be pushed down the tree by swapping it with the largest key in tex2html_wrap_inline63334; and if tex2html_wrap_inline62418 is non-empty, tex2html_wrap_inline63336 can be pushed down the tree by swapping it with the smallest key in tex2html_wrap_inline62418.

Program gif gives the code for the withdraw method of the MWayTree class. The general form of the algorithm follows that of the withdraw method for the BinarySearchTree class (Program gif).

   program20813
Program: MWayTree class withdraw method.


next up previous contents index

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