Answer:
template <typename T>
void ReverseStack(Stacks)
{
if ( s.isEmpty() )
return; // nothing to do
else
{
T elem = s.Top();
s.Pop();
ReverseStack(s);
s.Push(elem);
}
}
template <typename T>
void ReverseStack(Stacks)
{
if ( s.isEmpty() )
return; // nothing to do
else
{
T elem = s.Top();
s.Pop();
ReverseStack(s);
s.Push(elem);
}
}
Ex: 6 8 2 3 7 1 9
After Push:
Regular stack:
6 8 2 3 7 1 9
Min Stack:
6 2 1
After Poping 9:
Regular stack:
6 8 2 3 7 1
Min Stack:
6 2 1
After Poping 1:
Regular stack:
6 8 2 3 7
Min Stack:
6 2
After Poping 3 , 7:
Regular stack:
6 8 2
Min Stack:
6 2
After Poping 2:
Regular stack:
6 8
Min Stack:
6
:
:
:
:
so on