The home work ask to write 3 different implementation to a Data Structure supporting only push and PopMax.
The first implementation is for one that will be called push most frequently and popMax very rare,
The second is for one that will be called this method in equal frequency,
And the third is an opposite to the first.
The main demand is that if one method call more frequent that the other than it must be faster (and vice reverse)