Queue--C++模板类
来源:互联网 发布:淘宝应用开发 编辑:程序博客网 时间:2024/06/16 16:24
#ifndef _QUEUE_H_#define _QUEUE_H_//链表实现namespace queue_in_list{ template<typename T> class Queue { private: struct Node { T data; struct Node *next; }; Node *front, *rear; public: void MakeNull(); bool Empty()const; void EnQueue(T x); void DeQueue(); T Front()const; }; template<typename T> T Queue<T>::Front()const { if (Empty()) { cout << "EMPTY!\n"; return; } else return front->next->data; } template<typename T> void Queue<T>::DeQueue() { if (Empty()) { cout << "EMPTY!\n"; return; } Node *p = front->next; front->next = p->next; if (p->next == NULL) rear = front; delete p; } template<typename T> void Queue<T>::EnQueue(T x) { Node *p = new Node; p->data = x; p->next = NULL; rear->next = p; rear = p; } template<typename T> bool Queue<T>::Empty()const { return front == rear; } template<typename T> void Queue<T>::MakeNull() { front = new Node; front->next = NULL; rear = front; }}//数组实现--循环队列namespace queue_in_array{ template<typename T> class Queue { private: enum { MAX = 100 }; T data[MAX]; int front; int rear; public: void MakeNull(); bool Empty()const; bool Full()const; T Front()const; void EnQueue(T x); void DeQueue(); }; template<typename T> void Queue<T>::DeQueue() { if (Empty()) { cout << "EMPTY!\n"; return; } else front = (front + 1) % MAX; } template<typename T> void Queue<T>::EnQueue(T x) { if (Full()) { cout << "FULL!\n"; return; } else { rear = (rear + 1) % MAX; data[rear] = x; } } template<typename T> bool Queue<T>::Full()const { return (rear + 1) % MAX == front; } template<typename T> T Queue<T>::Front()const { if (Empty()) { cout << "EMPTY!\n"; return NULL; } else { int t = (front + 1) % MAX; return data[t]; } } template <typename T> bool Queue<T>::Empty()const { return front == rear; } template<typename T> void Queue<T>::MakeNull() { front = rear = MAX - 1; }}#endif
0 0
- C++primer 实现queue的模板类
- 类模板实现Queue
- Queue模板类
- 模板队列Queue类
- Queue--C++模板类
- C# Queue模板类
- c++模板类Queue
- [C++]queue简单实现--关于模板
- 自定义类模板 实现Queue
- 使用模板类实现Queue
- 类模板Queue的实现
- C++之queue模板类
- queue模板
- STL<list stack queue 模板类>
- C++ 实现自己queue模板类
- C++之STL--queue模板类
- 自己实现的queue模板类
- 【C++】 C++标准模板库(六) Queue
- android 渐变背景xml
- Stack--C++模板类
- 产品经理面试考核和能力分级
- R语言中paste()中粘贴向量
- stretchableImageWithLeftCapWidth
- Queue--C++模板类
- 初写博客,python菜鸟一个,希望热心大神指导
- ListView使用CheckBox选择行后获取数据
- JavaScript 中三种常见的提示框(alert、confirm、prompt)
- androin各类动画效果实现
- List--C++模板类
- android Handler的基本使用方法和介绍(二)
- Java Vector线程安全?
- Android:SharedPreferences