沈阳网站优化哪家好,html网页可以用以下哪个工具制作,济宁网站建设 水木,靖江市住房和城乡建设局的网站循环队列CircleQueue 的使用 循环队列是实际编写应用中比较重要的一种数据结构#xff0c;下面介绍在实际项目中用到的循环队列CircleQueue。它是用C编写的#xff0c;具体源代码见 https://github.com/duankai/CircleQueue templatetypenameAnyData
struct DATA_NOD…循环队列CircleQueue 的使用 循环队列是实际编写应用中比较重要的一种数据结构下面介绍在实际项目中用到的循环队列CircleQueue。它是用C编写的具体源代码见 https://github.com/duankai/CircleQueue templatetypenameAnyData
struct DATA_NODE_T
{int index;AnyData * paDataNode;DATA_NODE_TAnyData * pstNext;
};/************************************************************************/
/*
/* CLASS: Declaration of CircleQueue class
/*
/************************************************************************/
templatetypenameAnyData
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_TAnyData*paHead;DATA_NODE_TAnyData*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()构造过程中初始化数据。