Cover 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

displaymath64438

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

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.