单纯就是写给自己看的怕忘了!
两个栈实现一个队列:
1.大前提是两个队列一定有一个是空的或者两个都是空的
1.1 当都空的时候,就往第一个队列里压数据
1.2 当队列1不为空,就往第一个里压
1.3 往第二个里压
2.出栈过程
2.1第二个队列为空
2.1.1 将第一个队列里的东西全弄到第二个队列里,直到第一个队列里只有一个数了
2.2 将第额个队列里的东西全弄到第一个队列里,直到第二个队列里只有一个数了
#include<iostream>
using namespace std;
#include<queue>
queue<int> q1;
queue<int> q2;
void push(int x)
{
if(q1.empty()&&q2.empty())
{
q1.push(x);
}
else if(q1.size()>0)
{
q1.push(x);
}
else if(q2.size()>0)
{
q2.push(x);
}
}
void pop()
{
if(q2.size()==0)
{
while(q1.size()!=1)
{
int temp=q1.front();
q2.push(temp);
q1.pop();
}
cout<<q1.front()<<endl;
q1.pop();
}
else
{
while(q2.size()!=1)
{
int temp=q2.front();
q1.push(temp);
q2.pop();
}
cout<<q2.front()<<endl;
q2.pop();
}
}
int main()
{
system("pause");
return 0;
}