用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:用连个栈,一个栈用来当输入的栈,一个栈用来当输出的栈,当输入时就把值push进输入栈中即可,当弹出时有两种情况:
1.输出栈不为空,那么从输出栈弹出一个元素即可。
2.输出栈为空,先把输入栈中的值弹到输出栈中,再从输出栈弹出一个元素即可。
stack<int> stack1;
stack<int> stack2;
void push(int node) {
stack1.push(node);
}
int pop() {
int t;
if(!stack2.empty())
{
t = stack2.top();
stack2.pop();
return t;
}else
{
while(!stack1.empty())
{
t = stack1.top();
stack1.pop();
stack2.push(t);
}
t = stack2.top();
stack2.pop();
return t;
}
}