用两个栈实现队列 C++实现
来源:互联网 发布:数值概率算法 编辑:程序博客网 时间:2024/06/10 21:21
//============================================================================// Name : QueueRealizedByStack.cpp// Author : Lee// Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include <iostream>#include <stack>using namespace std;template<typename T> class CQueue{public:CQueue() {}~CQueue() {}void appendTail(const T& node); // append a element to tailvoid deleteHead(); // remove a element from headsize_t size();T front();private:stack<T> m_stack1;stack<T> m_stack2;};template<typename T> void CQueue<T>::appendTail(const T &node){m_stack1.push(node);}template<typename T> void CQueue<T>::deleteHead(){if(m_stack2.size()>0){m_stack2.pop();}else{if(0==m_stack1.size()){return;}else{while(m_stack1.size()!=0){m_stack2.push(m_stack1.top());m_stack1.pop();}m_stack2.pop();}}}template<typename T> size_t CQueue<T>::size(){return m_stack1.size()+m_stack2.size();}template<typename T> T CQueue<T>::front(){if(m_stack2.size()>0){return m_stack2.top();}else{if(0==m_stack1.size()){T t;return t;}else{while(m_stack1.size()!=0){m_stack2.push(m_stack1.top());m_stack1.pop();}return m_stack2.top();}}}int main() {cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!CQueue<int> cq;cq.appendTail(4);cq.appendTail(3);cout<<cq.front();return 0;}
0 0
- 两个栈实现一个队列(C/C++)
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- C++:利用两个栈实现队列操作
- 【C++】两个队列实现一个栈
- 【C++】两个栈实现一个队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 如何成为Python高手(转)
- java基础---JNI原理
- 嵌入式 C语言实现进度条以及实现带进度条的CP命令等编程示例收集一
- CryptAPI和openssl交互使用
- Git入门教程
- 用两个栈实现队列 C++实现
- bubbleSort
- Oracle优化思路
- MFC自定义消息
- 续前言–android之前你必须要注意的
- Master指令,Control指令,Register指令,PreviousPageType指令,MasterType指令
- 纯CSS实现倒计时动画
- Mobile 上pre的特殊处理
- jQuery中点击+-加减号改变表单数值