用递归和栈的操作函数实现栈的逆序,要求不能使用额外的辅助空间。
int getandremovelastnum(stack<int>&s){
//得到并删除栈底的元素
int ret = s.top();
s.pop();
if (s.empty()){
return ret;
}
else{
int last = getandremovelastnum(s);
s.push(ret);
return last;
}
}
void reverse(stack<int>&s){
//栈的逆序
if (s.empty())
return;
int i = getandremovelastnum(s);
reverse(s);
s.push(i);
}