#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;
}
用两个栈实现队列
最新推荐文章于 2022-03-25 11:30:19 发布