1 class MyQueue {
2 public:
3 /** Initialize your data structure here. */
4 MyQueue() {
5
6 }
7
8 /** Push element x to the back of queue. */
9 void push(int x) {
10 stkPush.push(x);
11 }
12
13 /** Removes the element from in front of queue and returns that element. */
14 int pop() {
15 int val;
16 if(stkPop.empty())
17 {
18 while(!stkPush.empty())
19 {
20 val=stkPush.top();
21 stkPush.pop();
22 stkPop.push(val);
23 }
24 }
25 val=stkPop.top();
26 stkPop.pop();
27 return val;
28 }
29
30 /** Get the front element. */
31 int peek() {
32 if(stkPop.empty())
33 {
34 while(!stkPush.empty())
35 {
36 int val=stkPush.top();
37 stkPush.pop();
38 stkPop.push(val);
39 }
40 }
41 return stkPop.top();
42 }
43
44 /** Returns whether the queue is empty. */
45 bool empty() {
46 return stkPush.empty()&&stkPop.empty();
47 }
48 private:
49 stack<int> stkPush;
50 stack<int> stkPop;
51 };
52
53 /**
54 * Your MyQueue object will be instantiated and called as such:
55 * MyQueue obj = new MyQueue();
56 * obj.push(x);
57 * int param_2 = obj.pop();
58 * int param_3 = obj.peek();
59 * bool param_4 = obj.empty();
60 */