The procedure 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 . 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
If both and are empty trees, then the key can be deleted from T by removing both and , say. If is non-empty, can be pushed down the tree by swapping it with the largest key in ; and if is non-empty, can be pushed down the tree by swapping it with the smallest key in .
Program gives the code for the Withdraw function of the MWayTree class. The general form of the algorithm follows that of the Withdraw routine for the BST class (Program ).
Program: MWayTree Class Withdraw Member Function Definition