第一篇

单纯就是写给自己看的怕忘了!

两个栈实现一个队列:

  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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值