Write a function named collapse
that takes a reference to a stack of integers as a parameter and that collapses it by replacing each successive pair of integers with the sum of the pair.
For example, suppose a stack stores these values (shown from bottom → top):
{7, 2, 8, 9, 4, 13, 7, 1, 9, 10}
The first pair should be collapsed into 9 (7 + 2), the second pair should be collapsed into 17 (8 + 9), the third pair should be collapsed into 17 (4 + 13) and so on to yield:
{9, 17, 17, 8, 19}
If the stack stores an odd number of elements, the final element is not collapsed.
For example, the stack:
{1, 2, 3, 4, 5}
would collapse into:
{3, 7, 5}
With the 5 at the top of the stack unchanged.
You may use one stack or queue as auxiliary storage.