class MyStack {
public:
/** Initialize your data structure here. */
MyStack() {
}
/** Push element x onto stack. */
void push(int x) {
//主要实现的是:将一个队列的元素添加到另一个队列中
queue<int> temp;
temp.push(x);
//如果原始队列为空的话,一点点将原始队列中的数据追加到temp队列中,
//然后将temp队列加载到原始队列中
while(!data.empty())
{
int tempa=data.front();
data.pop();
temp.push(tempa);
}
while(!temp.empty())
{
int temp1=temp.front();
temp.pop();
data.push(temp1);
}
}
/** Removes the element on top of the stack and returns that element. */
int pop() {
int re=data.front();
data.pop();
return re;
}
/** Get the top element. */
int top() {
return data.front();
}
/** Returns whether the stack is empty. */
bool empty() {
return data.empty();
}
queue<int> data;
};
/**
* Your MyStack object will be instantiated and called as such:
* MyStack* obj = new MyStack();
* obj->push(x);
* int param_2 = obj->pop();
* int param_3 = obj->top();
* bool param_4 = obj->empty();
*/