栈实现队列
#include <iostream> #include <stack> using namespace std; class MyQueue { public: bool empty(); int front(); void push(int a); int pop(); private: stack<int> S; }; bool MyQueue::empty() { return S.empty(); } int MyQueue::front() { return S.top(); } int MyQueue::pop() { int i = S.top(); S.pop(); return i; } void MyQueue::push(int a) { stack<int> temp; while(!S.empty()) { temp.push(S.top()); S.pop(); } temp.push(a); while(!temp.empty()) { S.push(temp.top()); temp.pop(); } } int main() { MyQueue Queue; for(int i = 0; i < 5; i++) { Queue.push(i); cout << Queue.front() << endl; } Queue.pop(); Queue.pop(); Queue.pop(); Queue.pop(); cout << Queue.front() << endl; return 0; }