队列的类模板
来源:互联网 发布:淘宝全民疯抢怎么撤销 编辑:程序博客网 时间:2024/04/29 03:45
队列是只能向一端添加元素,从另一端删除元素的线性群体
队列的基本状态:
队空
队满
一般状态
队列类模板:
//Queue.h#ifndef QUEUE_H#define QUEUE_H#include <cassert>//类模板的定义template <class T, int SIZE = 50>class Queue {private: int front, rear, count; //队头指针、队尾指针、元素个数 T list[SIZE]; //队列元素数组public: Queue(); //构造函数,初始化队头指针、队尾指针、元素个数 void insert(const T &item); //新元素入队 T remove(); //元素出队 void clear(); //清空队列 const T &getFront() const; //访问队首元素 //测试队列状态 int getLength() const;//求队列长度 bool isEmpty() const;//判断队列空否 bool isFull() const;//判断队列满否};//构造函数,初始化队头指针、队尾指针、元素个数template <class T, int SIZE>Queue<T, SIZE>::Queue() : front(0), rear(0), count(0) { }template <class T, int SIZE>void Queue<T, SIZE>::insert (const T& item) {//向队尾插入元素 assert(count != SIZE); count++; //元素个数增1 list[rear] = item; //向队尾插入元素 rear = (rear + 1) % SIZE; //队尾指针增1,用取余运算实现循环队列}template <class T, int SIZE> T Queue<T, SIZE>::remove() { assert(count != 0); int temp = front; //记录下原先的队首指针 count--; //元素个数自减 front = (front + 1) % SIZE;//队首指针增1。取余以实现循环队列 return list[temp]; //返回首元素值}template <class T, int SIZE>const T &Queue<T, SIZE>::getFront() const { return list[front];}template <class T, int SIZE>int Queue<T, SIZE>::getLength() const { //返回队列元素个数 return count;}template <class T, int SIZE>bool Queue<T, SIZE>::isEmpty() const { //测试队空否 return count == 0;}template <class T, int SIZE>bool Queue<T, SIZE>::isFull() const { //测试队满否 return count == SIZE;}template <class T, int SIZE>void Queue<T, SIZE>::clear() { //清空队列 count = 0; front = 0; rear = 0; }#endif //QUEUE_H
来自清华大学MOOC课件
0 0
- 队列的类模板
- 队列类的模板实现
- 队列类模板的使用
- [数据结构]队列之顺序队列的类模板实现
- [数据结构]队列之链式队列的类模板实现
- 模板类的练习——队列
- c++队列类模板的实现
- 链队列的模板类实现
- 队列类模板
- 队列类模板
- 类模板之队列
- 队列类模板
- 消息队列模板类
- 模板队列Queue类
- c++模板队列类
- 数据结构-队列:循环队列与链队列的C++模板类实现
- c++模板实现的队列
- 用模板做的队列
- RunLoop 学习
- mount -t proc none /proc
- 实时显示iOS编写UI代码效果:有效提高UI编写速度
- CSS学习1——基本布局以及盒子模型
- 从新安装Zend studio,从新安装svn导致不能share项目的问题
- 队列的类模板
- Android数据存储之数据库的利用
- [转]maven常用命令
- 【限额300,预报从速!!!】首届中国移动测试大会将于7月11日在北京举行
- Oracle 递归查询
- 在Windows下用C扩展PHP(打包成dll)的方法
- android http协议post请求方式
- STL学习笔记之容器--map
- 两个日期之间差