Write a program to evaluate empirically the following strategies for removing nodes with two children:
a. Replace with the largest node, X, in TL and recursively remove X.
b. Alternately replace with the largest node in TL and the smallest node in TR, and recursively remove the appropriate node.
c. Replace with either the largest node in TL or the smallest node in TR (recursively removing the appropriate node), making the choice randomly.
Which strategy seems to give the most balance? Which takes the least CPU time to process the entire sequence?