c++ 两个栈实现队列
来源:互联网 发布:淘宝助理在哪里 编辑:程序博客网 时间:2024/05/21 19:24
#include <cstdlib>#include <iostream>#include <stack>/*两个栈实现队列*/using namespace std;template<class T>struct MyQueue{ void push(T &t) { s1.push(t); } T front() { if(s2.empty()) { if(s1.size()==0) throw; while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } } return s2.top(); } void pop() { if(s2.empty()) { while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } } if(!s2.empty()) s2.pop(); } stack<T> s1; stack<T> s2;};int main(int argc, char *argv[]){ MyQueue<int> mq; int i; for(i=0;i<10;++i) { mq.push(i); } for(i=0;i<10;++i) { cout<<mq.front()<<endl; mq.pop(); } system("PAUSE"); return EXIT_SUCCESS;}