
1 class MyStack {
2 public:
3 queue<int> q;
4 /** Initialize your data structure here. */
5 MyStack() {
6
7 }
8 /*
9 --------------
10 push pop
11 front
12 */
13 /** Push element x onto stack. */
14 void push(int x) {
15 //push之后把x放到最前面就可以了
16 q.push(x);
17 for(int i=0;i<q.size()-1;i++){
18 q.push(q.front());
19 q.pop();
20 }
21 }
22
23 /** Removes the element on top of the stack and returns that element. */
24 int pop() {
25 int tmp = q.front();
26 q.pop();
27 return tmp;
28 }
29
30 /** Get the top element. */
31 int top() {
32 return q.front();
33 }
34
35 /** Returns whether the stack is empty. */
36 bool empty() {
37 return q.empty();
38 }
39 };
40
41 /**
42 * Your MyStack object will be instantiated and called as such:
43 * MyStack* obj = new MyStack();
44 * obj->push(x);
45 * int param_2 = obj->pop();
46 * int param_3 = obj->top();
47 * bool param_4 = obj->empty();
48 */