#include <stack>
#include <iostream>
using namespace std;
template<typename T>
class Queue
{
public:
void push(const T &num)
{
s1.push(num);
}
T pop()
{
if (s2.size() ==0)
{
while (s1.size())
{
T num = s1.top();
s2.push(num);
s1.pop();
}
}
if (s2.size() == 0)
{
throw new exception("queue is empty");
}
T num = s2.top();
s2.pop();
return num;
}
public:
stack<T> s1;
stack<T> s2;
};
void main()
{
Queue<int> Q;
for (int i = 0 ; i < 10 ; i++)
{
Q.push(i);
}
for (int i = 0 ; i < 10 ; i++)
{
cout<<Q.pop()<<ends;
}
}
两个栈实现的一个队列
最新推荐文章于 2024-04-22 23:20:09 发布