stack1用于存放入队的元素,以压栈的方式压入stack1,但是这样取出的顺序是反的,所以将stack2当作中转站,这样顺序就变成先进先出了。
class Solution
{
public:
void push(int node) {
//判满步骤省略,stack容器是动态的
stack1.push(node);
}
int pop() {
if(stack2.empty()){//stack2为空
if(stack1.empty()){//stack1也为空
return 0;
}
else{//stack1中有元素
while(!stack1.empty()){
int temp=stack1.top();
stack1.pop();
stack2.push(temp);
}
}
}
int top=stack2.top();
stack2.pop();
return top;
}
private:
stack<int> stack1;
stack<int> stack2;
};
C++ STL的stack的使用参见我的另外一篇博客:C++ STL容器——stack用法介绍
原文:https://www.cnblogs.com/MarkKobs-blog/p/10347678.html