classMyStack { public: queue<int> que; /** Initialize your data structure here. */ MyStack() {
} /** Push element x onto stack. */ voidpush(int x){ que.push(x); } /** Removes the element on top of the stack and returns that element. */ intpop(){ int size = que.size(); size--; while (size--) { // 将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部 que.push(que.front()); que.pop(); } int result = que.front(); // 此时弹出的元素顺序就是栈的顺序了 que.pop(); return result; }
/** Get the top element. */ inttop(){ return que.back(); }
/** Returns whether the stack is empty. */ boolempty(){ return que.empty(); } };