classMyStack { queue<int> queue1; queue<int> queue2; public: /** Initialize your data structure here. */ MyStack() {
}
/** Push element x onto stack. */ voidpush(int x){ queue2.push(x); while (!queue1.empty()) { queue2.push(queue1.front()); queue1.pop(); } swap (queue1,queue2); }
/** Removes the element on top of the stack and returns that element. */ intpop(){ int r = queue1.front(); queue1.pop(); return r; }
/** Get the top element. */ inttop(){ int r = queue1.front(); return r; }
/** Returns whether the stack is empty. */ boolempty(){ return queue1.empty(); } };
/** * 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(); */