private void deleteFringeMigrate ( DeleteStack stack , GBSNode p ) { GBSNode endp = p ; /* Last node processed */ int endIndex = stack . index ( ) ; /* Index to last parent */ stack . add ( 0 , p ) ; /* Put last node in stack for possible */ /* use by rebalance */ /* Maximum number of right child nodes */ /* before the fringe must be rebalanced */ int maxBal = maximumFringeImbalance ( ) ; stack . processSubFringe ( p ) ; /* See DeleteStack.processNode */ endp = stack . lastNode ( ) ; endIndex = stack . lastIndex ( ) ; deleteCheckFringeBalance ( stack , endp , endIndex , maxBal ) ; }
Migrate a hole from a partial leaf through to the proper place in its fringe deleting a node from the right side of the fringe if necessary .