标签:
Implement the following operations of a stack using queues.
push to back
, peek/pop from front
, size
, and is empty
operations are valid.
两个queue实现stack。
q1移入q2,留下一个,就是top和pop的那个数了。
1 class Stack { 2 public: 3 queue<int> q1,q2; 4 // Push element x onto stack. 5 void push(int x) { 6 q1.push(x); 7 } 8 9 // Removes the element on top of the stack. 10 void pop() { 11 while(q1.size()>1) 12 { 13 int tmp = q1.front(); 14 q1.pop(); 15 q2.push(tmp); 16 } 17 q1.pop(); 18 while(q2.size()>0) 19 { 20 int tmp = q2.front(); 21 q2.pop(); 22 q1.push(tmp); 23 } 24 } 25 26 // Get the top element. 27 int top() { 28 while(q1.size()>1) 29 { 30 int tmp = q1.front(); 31 q1.pop(); 32 q2.push(tmp); 33 } 34 return q1.front(); 35 } 36 37 // Return whether the stack is empty. 38 bool empty() { 39 if(q1.empty() && q2.empty()) return true; 40 else return false; 41 } 42 };
[LeetCode]Implement Stack using Queues
标签:
原文地址:http://www.cnblogs.com/Sean-le/p/4814081.html