标签:
1 class Stack { 2 public: 3 // Push element x onto stack. 4 void push(int x) { 5 if(q1.empty()&&q2.empty()) 6 q1.push(x); 7 else 8 { 9 if(q1.empty()) 10 q2.push(x); 11 else q1.push(x); 12 } 13 14 } 15 16 // Removes the element on top of the stack. 17 void pop() { 18 if(q1.empty()&&q2.empty()) 19 return ; 20 else 21 { 22 if(q1.empty()) 23 { 24 if(q2.size()==1) 25 q2.pop(); 26 else 27 { 28 while(q2.size()>1) 29 { 30 q1.push(q2.front()); 31 q2.pop(); 32 } 33 q2.pop(); 34 } 35 } 36 else 37 { 38 if(q1.size()==1) 39 q1.pop(); 40 else 41 { 42 while(q1.size()>1) 43 { 44 q2.push(q1.front()); 45 q1.pop(); 46 } 47 q1.pop(); 48 } 49 } 50 } 51 } 52 53 54 // Get the top element. 55 int top() { 56 if(q1.empty()&&q2.empty()) 57 return -1; 58 else 59 { 60 if(q1.empty()) 61 { 62 return q2.back(); 63 } 64 else 65 { 66 return q1.back(); 67 } 68 } 69 } 70 71 72 // Return whether the stack is empty. 73 bool empty() { 74 if(q1.empty()&&q2.empty()) 75 return true; 76 else return false; 77 } 78 private: 79 queue<int> q1; 80 queue<int> q2; 81 };
标签:
原文地址:http://www.cnblogs.com/daocaorenblog/p/5440371.html