两个栈形成一个队列
1.栈先进后出,两个栈就可以先进先出
2. 从一个栈进,然后转移到另一个栈中,然后再出。代码如下。
class MyQueue {
public:
MyQueue() {
// do intialization if necessary
}
/*
* @param element: An integer
* @return: nothing
*/
void push(int element) {
// write your code here
stackPush.push(element);
}
/*
* @return: An integer
*/
int pop() {
// write your code here
transport();
int tmp=stackPop.top();
stackPop.pop();
return tmp;
}
/*
* @return: An integer
*/
int top() {
// write your code here
transport();
return stackPop.top();
}
private:
stack<int> stackPush;
stack<int> stackPop;
//转移函数
void transport(){
if(stackPop.empty()){
while(!stackPush.empty()){
stackPop.push(stackPush.top());
stackPush.pop();
}
}
}
};