LeetCode(225)用队列实现栈
作者:互联网
令队列一为主队列,队列二为辅助队列
当队列一空的时候,输入的元素直接放进来,即队头和队尾都是这个元素
当队列非空的时候,输入一个元素:
先把队列一的元素都放入队列二,输入此元素,再把队列二倒入队列一,这样就实现了新入队的元素在队列一的头,即后进先出
另外,queue<int>q的基本操作是:
q.front();//返回队头元素 q.push(3);//插入3至队尾 q.pop();//删除队头元素 q.size();
附上代码:
class MyStack { public: queue<int>q1,q2; MyStack() { } void push(int x) { int t; if(q1.size()>0){ while(!q1.empty()){ q2.push(q1.front()); q1.pop(); } q1.push(x); while(!q2.empty()){ q1.push(q2.front()); q2.pop(); } }else{ q1.push(x); } } int pop() { int t = q1.front(); q1.pop(); return t; } int top() { return q1.front(); } bool empty() { if(q1.size()==0)return true; return false; } }; /** * Your MyStack object will be instantiated and called as such: * MyStack* obj = new MyStack(); * obj->push(x); * int param_2 = obj->pop(); * int param_3 = obj->top(); * bool param_4 = obj->empty(); */
标签:q1,q2,队列,pop,int,push,225,LeetCode 来源: https://www.cnblogs.com/stevenzrx/p/16293507.html