用遞歸和棧的操作函數實現棧的逆序,要求不能使用額外的輔助空間。
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);
}