标签:
class Stack{ private: int cur = 0; int elem[2000001]; public: void push(int n); int pop(); int peek(); int size(); }; void Stack::push(int n){ elem[cur] = n; cur++; } int Stack::pop(){ cur--; return elem[cur + 1]; } int Stack::peek(){ return elem[cur - 1]; } int Stack::size(){ return cur; } class Queue{ private: Stack s1, s2; public: void enqueue(int n); int dequeue(); int peek(); int size(); }; void Queue::enqueue(int n){ if(s1.size() == 0){ while(s2.size()){ s1.push(s2.pop()); } } s1.push(n); } int Queue::dequeue(){ if(s2.size() == 0){ while(s1.size()){ s2.push(s1.pop()); } } return s2.pop(); } int Queue::peek(){ if(s2.size() == 0){ while(s1.size()){ s2.push(s1.pop()); } } return s2.peek(); } int Queue::size(){ return s1.size()? s1.size() : s2.size(); }
use 2 stacks to simulate a queue
标签:
原文地址:http://www.cnblogs.com/miaoz/p/4440544.html