C++队列
来源:互联网 发布:淘宝联盟21号不能提现 编辑:程序博客网 时间:2024/05/22 09:02
特点:先进先出
描述:队列及数据形成一个圆环,队头数据出去,队尾数据进来,当队列为空时,队尾和对头指向同一处,当队满时,队尾和对头还是指向同一处。
例:队列类模版
//dl1.h#define QUEUE_CLASS#include<iostream.h>#include<stdlib.h>const int MaxQSize=50;//队列最大为50template<class T>class Queue{int front,rear,count;T qlist[MaxQSize];public:Queue(void);//构造函数void QInsert(const T& item);//入队T QDelete(void);//出队void ClearQueue(void);//清空队列T QFront(void)const;//队列头int QLength(void)const;//返回队列长度int QEmpty(void)const;//返回队列是否为空int QFull(void)const;//返回队列是否为满};//构造函数,初始化对头指针,队尾指针、元素个数template<class T>Queue<T>::Queue(void):front(0),rear(0),count(0){}//向队尾插入元素(入队)template<class T>void Queue<T>::QInsert(const T& item){if(count==MaxQSize){//如果队满,终止程序cerr<<"Queue overflow!"<<endl;exit(1);}count++;//元素个数+1qlist[rear]=item;//向队尾插入元素rear=(rear+1)%MaxQSize//队尾指针+1,用取余运算实现循环队列}//删除队首元素,并返回该元素的值(出队)template<class T>T Queue<T>::QDelete(void){T temp;if(count=0){//如果队空,终止程序cerr<<"This is an empty queue!"<<endl;exit(1);}temp=qlist[front];//记录队首元素值count--;//元素个数-1front=(front+1)%MaxQSize;//队首指针+1,用取余运算实现循环队列return temp;//返回首元素值}//清空队列template<class T>//难道说直接覆盖了吗?void Queue<T>::ClearQueue(void){count=0;front=0;rear=0;}//访问队列首元素template<class T>T Queue<T>::QFront(void)const{return qlist[front];}//返回队列元素个数template<class T>int Queue<T>::QLength(void)const{return count;}//是否空队template<class T>int Queue<T>::QEmpty(void)const{return count==0;}//是否队满template<class T>int Queue<T>::QFull(void)const{return count==MaxQSize;}
0 0
- C 队列
- 队列(C#)
- C 队列
- C+队列
- C 队列
- C#:消息队列应用程序
- C#:消息队列应用程序
- queue-c链式队列
- c循环队列
- C动态队列
- C#:消息队列应用程序
- 链式队列(数据结构C#)
- c 队列线性存储
- c 环状队列
- 数据结构---队列(C#)
- C 宏实现队列
- C的循环队列
- C语言:队列
- Mac上多种字体名称的获取
- 阿里MYSQL数据搬运工具 otter安装配置
- NYOJ 12 喷水装置(二)
- SDP学习
- Oracle优化一个视图发现的问题。
- C++队列
- 文件搜索软件Everything
- 怎么将excel转换pdf在线转换
- 输入两个数,算他们的最小公倍数和最大公约数
- 电池动画的实现
- QT+VS2012安装配置
- 机械键盘cherry常见轴科普 --By Cheng
- Linux chown命令学习
- spring mvc ajax 配置