欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

循环队列CircleQueue的使用

发布时间:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的这篇文章主要介绍了 循环队列CircleQueue的使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

循环队列CircleQueue 的使用

       循环队列是实际编写应用中比较重要的一种数据结构,下面介绍在实际项目中用到的循环队列CircleQueue。它是用C++编写的,具体源代码见 https://github.com/duankai/CircleQueue

      

template<typenameAnyData> struct DATA_NODE_T {int index;AnyData * paDataNode;DATA_NODE_T<AnyData> * pstNext; };
/************************************************************************/ /* /* @CLASS: Declaration of CircleQueue class /* /************************************************************************/ template<typenameAnyData> class CircleQueue { public :CircleQueue(intiSize);int GetCircleQueueLength();bool AddData(AnyData data);bool AllDataLarger(AnyData data, bool (* comparePf)(AnyDatad1,AnyDatad2));//All data in this queue are larger than databool AllDataSmaller(AnyData data, bool (* comparePf)(AnyDatad1,AnyDatad2));//All data in this queue are smaller than dadabool DelData();bool FullQueue();bool GetInstanceStatus();AnyData * GetDataByIndex(intindex);~CircleQueue(); private:void InitData(); private:int m_iSize;void * m_pdData;bool m_bInitRst;DATA_NODE_T<AnyData>*paHead;DATA_NODE_T<AnyData>*paTail; };

在要使用的源文件代码中include CircleQueue.h即可。


1.CircleQueue(intiSize): 构造函数,iSize表示队列的长度。

2.int GetCircleQueueLength():得到队列的大小。

3.bool AddData(AnyDatadata):向队列中添加数据,如果超出队列的大小,则覆盖第一个添加的数据。

4.bool AllDataLarger(AnyDatadata,bool(*comparePf)(AnyDatad1,AnyDatad2)):用data和循环队列中的所有数据比较大小,比较函数则由comparePf指定。如果循环队列中的所有数据大于给定的data,则返回True,否则返回False。

5.bool AllDataSmaller(AnyDatadata,bool(*comparePf)(AnyDatad1,AnyDatad2)):用data和循环队列中的所有数据比较大小,比较函数则由comparePf指定。如果循环队列中的所有数据小于给定的data,则返回True,否则返回False。

6.bool DelData():删除当前数据,当前数据是尾指针所指的数据。

7.bool FullQueue():判断循环队列是否已满。

8.bool GetInstanceStatus():获得CircleQueue的实例状态,判断是否初始化成功。如果成功返回True,否则返回False。

9.AnyData * GetDataByIndex(intindex):根据循环队列节点索引获得CirleQueue中存储 的数据,类型为用户已经指定的类型。

10.~CircleQueue():析构函数。

11.void InitData():构造过程中初始化数据。


总结

以上是生活随笔为你收集整理的循环队列CircleQueue的使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。