两个栈实现队列的功能
2015-04-06 22:40
225 查看
//用两个栈实现队列的功能 //假设有两个栈s1与s2,则s1保存刚刚入队的元素,若需出队且s2为空,则将s1所有元素压入s2(此时s2中元素顺序为元素入队顺序),然后取出s2栈顶即可,若s2非空(此时s2中元素为s1之前压入,其栈顶就是最早入队的元素),则直接取出s2的栈顶。 template<class T> class MyQueue { stack<T> s1,s2; public: MyQueue(){} int size() { return s1.size()+s2.size(); } bool empty() { if(size()==0)return true; else return false; } void push(T value) { s1.push(value); } T front() { if(!s2.empty()) { return s2.top(); } else { while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } return s2.top(); } } void pop() { if(!s2.empty()) { s2.pop(); } else { while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } s2.pop(); } } };
相关文章推荐
- 两个栈实现队列功能C语言实现能运行!
- 用两个栈实现一个队列的功能 && 两个队列实现一个栈的功能 && 代码实例
- 数据结构与算法_两个栈实现一个队列的功能
- 用两个栈实现一个队列:实现出队列和入队列功能,用两个队列实现一个栈
- C/C++之用两个栈实现一个队列的功能
- 用两个栈实现一个队列的功能?要求给出算法和思路!
- 两个栈实现队列的功能
- 用两个栈实现一个队列的功能
- 边看边写(用两个栈实现队列功能)
- 用C++实现用两个栈实现一个队列的功能
- 用两个栈实现一个队列功能
- 分享:两个栈实现一个队列的功能
- 程序员面试宝典之数据结构基础----C++两个栈实现一个队列功能
- 用两个栈实现一个队列的功能
- 两个栈实现一个队列的功能
- 用两个栈实现一个队列的功能...
- 面试系列7--用两个栈实现一个队列的功能
- 用两个栈实现一个队列的功能
- 两个顺序栈实现顺序队列功能
- 两个栈实现队列功能