思路:采用递归的方法实现,注意分情况处理:栈中只有一个元素,栈中元素至少两个元素
代码:
template<class T> void reverseStack(stack<T> s){
if(s.empty()) return;
else {
//判断栈中是不是只有一个元素
T a=s.top();
s.pop();
if(s.empty()) {s.push(a);return ;}
else s.push(a);
}
//当栈中元素至少为两个元素的情况
T tmp1=s.top();
s.pop();
reverseStack(s);
T tmp2=s.top();
s.pop();
reverseStack(s);
s.push(tmp1);
reverseStack(s);
s.push(tmp2);
}