日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

循环队列CircleQueue的使用

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 循环队列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的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。