双栈_队列

//双栈实现队列
//入栈:直接在栈A中入栈。
//出栈:(1)如果栈B非空,栈B直接出栈;(2)如果栈B为空,将栈A中元素转移到栈B中,再由栈B出栈;

#include <stack>
using namespace std;
template<class T>
struct Myqueue
{
    stack<T> s1;
    stack<T> s2;
    
    void push(T &t)
    {
        s1.push(t);
    }
    
    void pop()
    {
        if(s2.empty())
        {
            while(!s1.empty())
            {
                s2.push(s1.top());
                s1.pop;
            }
        }
        if(!s2.empty())
        s2.pop();
    }
    
    T front()
    {
        if(s2.empty)
        {
            while(!s1.empty())
            {
                s2.push(s1.top());
                s1.pop();
            }
        }
        return s2.top();
    }
    
};
原文地址:https://www.cnblogs.com/helo-blog/p/3353444.html