c++ 类模板 用栈实现队列
来源:互联网 发布:淘宝比较靠谱的韩代 编辑:程序博客网 时间:2024/06/11 08:02
c++语言可以利用STL库中定义的栈类实现队列的操作。
包括入队列、出队列操作。
下面就是用两个栈实现队列的上述操作。其中涉及到类模板的知识,不清楚的可以去其它地方进行查询。
#include <iostream>#include <stack>using namespace std;template<typename T> class CQueue{public: //CQueue(void); //~CQueue(void); void appendTail(const T& node); T deleteHead();private: stack<T> stack1; stack<T> stack2;};template<typename T> void CQueue<T>::appendTail(const T& element){ stack1.push(element);}template<typename T> T CQueue<T>::deleteHead(){ if(stack2.size()<=0) { while(stack1.size()>0) { stack2.push(stack1.top()); stack1.pop(); } } if(stack2.size()==0) { cout << "Queue is empty" << endl; } T head=stack2.top(); stack2.pop(); return head;}void Test(char actual, char expected){ if(actual==expected) { cout << "Test Passed" << endl; } else { cout << "Test Failed" << endl; }}int main(){ CQueue<char> My_queue; My_queue.appendTail('a'); My_queue.appendTail('b'); My_queue.appendTail('c'); char head = My_queue.deleteHead(); Test(head,'a'); head = My_queue.deleteHead(); Test(head,'b'); My_queue.appendTail('d'); head = My_queue.deleteHead(); Test(head,'c'); My_queue.appendTail('e'); head = My_queue.deleteHead(); Test(head,'d'); head = My_queue.deleteHead(); Test(head,'e'); return 0;}
阅读全文
0 0
- c++ 类模板 用栈实现队列
- 栈实现队列(模板)
- c语言用宏实现模板-以队列为例
- c语言用宏实现模板-以队列为例
- 数据结构(C++)最小优先权队列实现<模板类>
- 用两个栈实现队列(C++模板)
- 用两个队列实现栈(C++模板)
- 【c++】环形队列类模板
- 【C++】模板实现双链表和队列
- 优先队列--模板类实现
- 队列类的模板实现
- 自编模板类+链表实现栈、队列
- 使用模板类,实现用两个栈模拟队列的功能
- <C/C++数据结构>队列(C++模板实现)
- 数据结构:模板实现栈和队列
- 队列——用C++模板实现
- C++用模板实现双链表和队列
- 数据结构实现(队列类模板)
- 二维码用途分类
- linux系统排错与修复
- java
- hdu 6038 Function 循环节
- sed命令中的正则表达式问号、加号、圆括号等需要转义
- c++ 类模板 用栈实现队列
- 欢迎使用CSDN-markdown编辑器
- caffe深度学习网络(.prototxt)可视化工具
- maven平板化依赖的弊端
- 决策树进行多属性分类 C++实现
- 【精】leetcode
- [HDU6071] Lazy Running
- Codeforces
- C语言内存分配