循环队列的简单构造(C++)
来源:互联网 发布:linux 硬盘空间扩容 编辑:程序博客网 时间:2024/04/23 15:33
这是简单的循环队列,采用数组来存储队列中的元素
template<class T>class Queue{public: Queue(int sz=10); ~Queue(){delete[]elements;} bool EnQueue(const T&x); bool DeQueue(T&x); bool getFront(T&x); void makeEmpty(){Front=rear=0;} bool IsFull()const{ return ((rear+1)%maxSize==Front)?true:false; }; bool IsEmpty(){return (rear==Front)?true:false;} int getSize(){return (rear-Front+maxSize)%maxSize;} friend ostream& operator<<(ostream& os, Queue<T>& Q);private: int Front, rear;//队头删除,队尾插入 int maxSize; T *elements;};template<class T>Queue<T>::Queue(int sz):Front(0),rear(0),maxSize(sz){ elements=new T[maxSize]; assert(elements!=NULL);}template<class T>//插入元素bool Queue<T>::EnQueue(const T&x){ if(IsFull())return false; elements[rear]=x; rear=(rear+1)%maxSize; return true;}template<class T>//删除bool Queue<T>::DeQueue(T&x){ if(IsEmpty())return false; x=elements[Front]; Front=(Front+1)%maxSize; return true;}template<class T>bool Queue<T>::getFront(T&x){ if(IsEmpty())return false; x=elements[Front]; return true;}template<class T>ostream& operator<<(ostream& os, Queue<T>& Q){ os<<"Front="<<Q.Front<<",rear"<<Q.rear<<endl; for(int i=Q.Front;i!=Q.rear;i=(i+1)%Q.maxSize) os<<i<<":"<<Q.elements[i]<<endl; return os;}
阅读全文
0 0
- 循环队列的简单构造(C++)
- C语言-循环队列的简单实现
- C实现简单循环队列
- c循环队列简单实现
- C的循环队列
- 链式队列的构造(C++)
- 循环队列(c)
- 循环队列的实现(C语言)
- 循环队列的实现(C语言)
- 【数据结构】循环队列的实现(c++)
- 循环队列的实现(C语言版)
- 循环队列的基础操作(C++)
- 循环队列的简单知识
- 循环队列的简单实现
- 循环队列的简单实现
- 循环队列的简单实现
- 循环队列(C/C++)
- 循环队列基本构造
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- 1 数据结构和算法笔记目录
- Oracle配置
- 关于Xshell连接不到Linux问题汇总
- HTML5-百度地图
- 循环队列的简单构造(C++)
- 图像处理领域的国际会议及期刊
- E-R图
- hashcode和equal的区别比较
- nyoj 16 矩阵嵌套
- java的图片和Base64编码相互转换
- HTML5-飞机大战
- 分布式锁的三种实现方式 / 分布式锁原理及实现方式 / 分布式锁1 Java常用技术方案
- JAVA互联网架构学习之ajax&Json