1.
不借助任何额外的数据结构,利用递归函数逆序一个栈
代码
//获取当前栈的栈底元素 并且把它从当前栈底移除
int getReturnLast(stack <int> & a)
{
int Temp = a.top();
a.pop();
//如果栈空了 说明上面pop出的是最后的一个元素
if(a.empty())
{
return Temp;
}
else
{
int res = getReturnLast(a);
//把前面的压回栈中
a.push(Temp);
return res;
}
}
void ReverseStack(stack<int> &a)
{
if(a.empty())
return;
//获取当前栈的栈底元素 并且把它从当前栈底移除
int Temp = getReturnLast(a);
ReverseStack(a);
a.push(Temp);
}