首页 > 代码库 > 用两个栈实现队列
用两个栈实现队列
#include <iostream> #include <stack> #include <stdlib.h> using namespace std; //唉,模板都忘的差不多了,就写个整型的吧 class MyQueue{ private: stack<int> s1; stack<int> s2; public: void enqueue(const int &n){ s1.push(n); } int size() { return (s1.size()+s2.size()); } int dequeue(){ if(s2.size()<=0){ while(s1.size()>0){ int& temp=s1.top(); s1.pop(); s2.push(temp); } } if(s2.size()==0){ cout<<"Queue is empty"<<endl; exit(1); } int n=s2.top(); s2.pop(); return n; } }; int main(){ MyQueue q; for(int i=0;i<10;i++){ q.enqueue(i); } cout<<"size="<<q.size()<<endl; cout<<q.dequeue()<<endl; cout<<"size="<<q.size()<<endl; q.enqueue(20); cout<<"size="<<q.size()<<endl; while(q.size()>0){ cout<<"size="<<q.size()<<endl; cout<<q.dequeue()<<endl; } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。