循环队列
来源:互联网 发布:软件研发公司 编辑:程序博客网 时间:2024/06/07 13:20
实现循环队列类,剩余一地址空间区分队列的空与满
- 暂时支持基本数据类型:int,char,float,double等。可以支持类么?,操作符new可以用来构建类数组么?
- 模板参数实现方式: template <typename T, unsigned N>
template <typename T> class CirQueue { private: T* a; int N; int F;//队列头 int R;//队列尾 public: CirQueue(int len); bool IsEmpty(); bool IsFull(); bool InQueue(T val); bool OutQueue(T& val); }
CirQueue::CirQueue(int len): a(NULL), N(len), F(0), R(0){ a = new T[len];//??? }
队列空 :头尾指向相同
bool CirQueue::IsEmpty() { if (F == R) { return true; }else { return false; } }
队列满:头指向落后尾一个单位
bool CirQueue::IsFull() { if ( (F+1)%N == R) { return true; }else { return false; } }
入队
bool CirQueue::InQueue(T val) { if( (F + 1)%N == R) { return false; }else { a[F] = val; F = (F + 1)%N; return true; } }
出队
bool CirQueue::OutQueue(T & val) { if (F == R) { return false; }else { val = a[R]; R = (R + 1)%N; return true; } }
0 0
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- Scalaz(42)- Free :FreeAp-Applicative Style Programming Language
- 常用的配置文件
- 框架和设计模式的区别
- CSS-边距
- 制作窗口
- 循环队列
- 阿里云ECS(linux)添加ftp用户_并设置权限
- 浏览器屏幕上显示的块级元素居中
- 排序算法实现分析
- TCP_NODELAY和Nagle算法
- 关于application/x-www-form-urlencoded等字符编码的
- Linux 双网卡绑定
- 上拉加载,下拉刷新以及集合堆叠效果
- Android学习笔记-TextView实现跑马灯效果