题目:一个栈依次压入12345,实现栈中元素逆序
解法一:开辟了一个新的栈作为辅助栈,将原栈中的元素依次弹出并压入到辅助栈中,最后返回辅助栈。
//逆序一个栈
stack<int> reverseStack(stack<int> stackData){
//辅助栈
stack<int> temp;
while(!stackData.empty()){
temp.push(stackData.top());
stackData.pop();
}
return temp;
}
解法二:不采用其他辅助数据结构,递归实现。
//每次返回栈底元素
int fun1(stack<int> &s){
int result = s.top();
s.pop();
if(s.empty())
return result;
else{
int t = fun1(s);
s.push(result);
return t;
}
}
void fun2(stack<int> &s){
if(s.empty())
return;
else{
int a = fun1(s);
fun2(s);
s.push(a);
}
}