博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列循环实现(C++)
阅读量:4312 次
发布时间:2019-06-06

本文共 1741 字,大约阅读时间需要 5 分钟。

C++队列的循环实现:

View Code
const int MAXQUEUE = 10;template
class ZtkQueue {public: ZtkQueue(); bool empty() const; ErrorCode append(const T &x); ErrorCode serve(); ErrorCode retrieve (T &x)const; bool full() const; int size() const; void clear(); ErrorCode serve_and_retrieve(T &x);private: int count; int rear; int front; T entry[MAXQUEUE];};template
ZtkQueue
::ZtkQueue():count(0),front(0),rear(MAXQUEUE-1){}template
ErrorCode ZtkQueue
::serve_and_retrieve(T &x){ ErrorCode outcome = success; if(count > 0) { count--; x=entry[front]; front = ((front+1)==MAXQUEUE)?0:front+1; } else outcome = underflow; return outcome;}template
void ZtkQueue
::clear(){ count=0; rear=MAXQUEUE - 1; front=0;}template
int ZtkQueue
::size() const{ return count;}template
bool ZtkQueue
::full() const{ if(count == MAXQUEUE) return true; else return false;}template
ErrorCode ZtkQueue
::retrieve(T &x) const{ ErrorCode outcome = success; if(!empty()) x = entry[front]; else outcome = underflow; return outcome;}template
ErrorCode ZtkQueue
::serve(){ ErrorCode outcome = success; if(count>0) { count--; front = ((front+1)==MAXQUEUE)?0:front+1; } else outcome = underflow; return outcome;}template
bool ZtkQueue
::empty()const{ if(count>0) return false; else return true;}template
ErrorCode ZtkQueue
::append(const T &x){ ErrorCode outcome = success; if(count < MAXQUEUE) { count++; rear = ((rear+1)==MAXQUEUE)?0:rear+1; entry[rear]=x; } else outcome = overflow; return outcome;}

 

转载于:https://www.cnblogs.com/zhoutk/archive/2012/10/24/2736447.html

你可能感兴趣的文章
FFmpeg 新旧版本编码 API 的区别
查看>>
RecyclerView 源码深入解析——绘制流程、缓存机制、动画等
查看>>
Android 面试题整理总结(一)Java 基础
查看>>
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day06
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Linux(SUSE 12)安装jboss4并实现远程访问
查看>>
Neutron在给虚拟机分配网络时,底层是如何实现的?
查看>>