方法:设计两个栈s_A(提供入队列的功能) ,
s_B(提供出队列的功能)
如果s_B 不为空,则直接弹出s_B的数据;
若果s_B为空,则将s_A的数据弹出输入到s_B中,然后依次输出s_B中的数据。
#include <iostream>
#include <stack>
using namespace std;
template<class T>
struct MyQueue
{
stack<T> s_A,s_B;
void In_dequeue(T elem)
{
s_A.push(elem);
}
void out_dequeue()
{
if(s_B.empty()==true)
{
while(s_A.size()!=0)
{
s_B.push(s_A.top());
s_A.pop();
}
}
while(s_B.empty()==false)
{
cout<<s_B.top()<<" ";
s_B.pop();
}
}
};
void main(void)
{
MyQueue<int> deueue_1;
int in_de;
for (int i=0;i<4;++i)
{
cout<<"输入要入队的元素:";
cin>>in_de;
deueue_1.In_dequeue(in_de);
}
for (int i=0;i<4;++i)
{
deueue_1.out_dequeue();
}
}