【数据结构】两个队列实现一个栈
用两个栈实现一个队列,这个问题与“两个队列实现一个栈”原理非常的相似。只要你明白了”两个队列实现一个栈“的原理,相信聪明的你,就会明白这个问题只是它的变种,所有的异或就会迎刃而解的。这里大家可以参考我的博客http://10740184.blog.51cto.com/10730184/1763006
代码如下:
#define_CRT_SECURE_NO_WARNINGS1#include<iostream>usingnamespacestd;//两个队列实现一个栈#include<queue>template<classT>classStack{public:voidappendTail(constT&x){q1.push(x);}voiddeleteTail(){if(q2.empty()){while(!q1.empty()){q2.push(q1.front());q1.pop();}cout<<q2.front()<<"";q2.pop();}else{cout<<q2.front()<<"";q2.pop();}}private:queue<T>q1;queue<T>q2;};voidTest(){Stack<int>s;s.appendTail(1);s.appendTail(2);s.appendTail(3);s.appendTail(4);s.deleteTail();s.deleteTail();s.deleteTail();s.deleteTail();}intmain(){Test();system("pause");return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。