亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

如何實現(xiàn)循環(huán)隊列

2020-05-23 14:17:25
字體:
供稿:網(wǎng)友

本文主要介紹了C語言循環(huán)隊列的實現(xiàn),對于數(shù)據(jù)結(jié)構(gòu)與算法的研究有所幫助,需要的朋友可以參考下

生活中有很多隊列的影子,比如打飯排隊,買火車票排隊問題等,可以說與時間相關(guān)的問題,一般都會涉及到隊列問題;從生活中,可以抽象出隊列的概念,隊列就是一個能夠?qū)崿F(xiàn)“先進先出”的存儲結(jié)構(gòu)。隊列分為鏈?zhǔn)疥犃泻挽o態(tài)隊列;靜態(tài)隊列一般用數(shù)組來實現(xiàn),但此時的隊列必須是循環(huán)隊列,否則會造成巨大的內(nèi)存浪費;鏈?zhǔn)疥犃惺怯面湵韥韺崿F(xiàn)隊列的。

 

 
  1. #ifndef SQQUEUE_H_INCLUDED  
  2. #define SQQUEUE_H_INCLUDED /* 防止重復(fù)包含 */  
  3.  
  4. //////////////////////////////////////////  
  5. //包含頭文件  
  6. #include <stdlib.h>  
  7. #include "ds.h" // OK, Status 等定義  
  8.  
  9. //數(shù)據(jù)元素的類型(缺省使用int型)  
  10. #ifndef ElemType  
  11. #define ElemType int  
  12. #define USE_DEFAULT_ELEMTYPE /* 使用缺省類型的標(biāo)志 */  
  13. #endif //ElemType  
  14.  
  15. //////////////////////////////////////////  
  16. //循環(huán)隊列的存儲結(jié)構(gòu)  
  17.  
  18. #define MAXQSIZE 500/* 循環(huán)隊列的最大容量 */  
  19. typedef struct {  
  20. /* TODO (#1#): 這里完成循環(huán)隊列的類型定義 */ 
  21. ElemType *base;  
  22. int front;  
  23. int rear;  
  24. //....................................  
  25. } SqQueue;  
  26.  
  27.  
  28. //////////////////////////////////////////  
  29. //循環(huán)隊列的基本操作  
  30.  
  31. //構(gòu)造一個空隊列Q  
  32. Status InitQueue(SqQueue &Q)  
  33. {  
  34. /* TODO (#2#): 構(gòu)造空隊列 */ 
  35. Q.base=(ElemType*)malloc(MAXQSIZE *sizeof(ElemType));  
  36. if(!Q.base)exit(OVERFLOW);  
  37. QQ.front=Q.rear =0;  
  38. return OK; //TODO: 替換這行代碼,以下同  
  39. //....................................  
  40. }  
  41.  
  42. //銷毀隊列Q  
  43. // 前提:隊列Q已存在  
  44. Status DestroyQueue(SqQueue &Q)  
  45. {  
  46. /* TODO (#3#): 銷毀隊列 */ 
  47. free(Q.base);  
  48. Q.base=NULL;  
  49. Q.front=0;  
  50. Q.rear=0;  
  51. return OK;  
  52. //....................................  
  53. }  
  54.  
  55. //將隊列Q清為空隊列  
  56. // 前提:隊列Q已存在  
  57. Status ClearQueue(SqQueue &Q)  
  58. {  
  59. /* TODO (#4#): 清空隊列 */ 
  60. Q.base=0;  
  61. Q.rear=0;  
  62. return OK;  
  63. //....................................  
  64. }  
  65.  
  66. //若隊列Q為空,則返回TRUE,否則FALSE  
  67. // 前提:隊列Q已存在  
  68. Status QueueEmpty(SqQueue Q)  
  69. {  
  70. /* TODO (#5#): 判斷隊列是否為空 */ 
  71. if(Q.front==Q.rear)  
  72. return OK;  
  73. else 
  74. return ERROR;  
  75. //....................................  
  76. }  
  77.  
  78. //返回隊列Q的元素個數(shù),即隊列長度  
  79. // 前提:隊列Q已存在  
  80. int QueueLength(SqQueue Q)  
  81. {  
  82. /* TODO (#6#): 返回隊列長度 */ 
  83. return (Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;  
  84. //....................................  
  85. }  
  86.  
  87. //取隊列Q頭元素用e返回  
  88. // 前提:隊列Q存在且非空  
  89. Status GetHead(SqQueue Q,ElemType &e)  
  90. {  
  91. /* TODO (#7#): 取隊頭元素存入e */ 
  92. if(Q.rear==Q.front)  
  93. return ERROR;  
  94. e=Q.base[Q.front];  
  95. //e=*(Q.base+Q.front);  
  96. return OK;//返回操作狀態(tài)(成功:OK,失敗:ERROR)  
  97. //....................................  
  98. }  
  99.  
  100. //插入元素e作為隊列Q的新的隊尾元素  
  101. // 前提:隊列Q存在且未滿  
  102. Status EnQueue(SqQueue &Q, ElemType e)  
  103. {  
  104. /* TODO (#8#): 元素e入隊列 */ 
  105. if((Q.rear+1)%MAXQSIZE==Q.front)  
  106. return ERROR;  
  107. //e=*(Q.base +Q.rear);  
  108. Q.base[Q.rear]=e;  
  109. Q.rear=(Q.rear+1)%MAXQSIZE;  
  110. return OK;//返回操作狀態(tài)(成功:OK,失敗:ERROR)  
  111. //....................................  
  112. }  
  113.  
  114. //刪除隊列Q的隊頭元素,并用e返回  
  115. // 前提:隊列Q存在且非空  
  116. Status DeQueue(SqQueue &Q, ElemType e)  
  117. {  
  118. /* TODO (#9#): 出隊列存入e */ 
  119. if(Q.front==Q.rear)  
  120. return ERROR;  
  121. //e=*(Q.base+Q.front);  
  122. e=Q.base[Q.front];  
  123. Q.front=(Q.front+1)%MAXQSIZE;  
  124. return OK;//返回操作狀態(tài)(成功:OK,失敗:ERROR)  
  125. //....................................  
  126. }  
  127.  
  128. //////////////////////////////////////////  
  129.  
  130.  
  131. //TODO: 定義好 SqQueue 類型后使用 QueueView 函數(shù)  
  132. /****** //TODO: 刪除此行以便使用QueueView()  
  133. #include <stdio.h>  
  134. //查看隊列狀態(tài)(調(diào)試用)  
  135. void QueueView(SqQueue Q)  
  136.  
  137. extern void PrintElem(ElemType e);//打印數(shù)據(jù)用  
  138. int i=0;  
  139. if(Q.front<0||Q.front>=MAXQSIZE||Q.rear<0||Q.rear>=MAXQSIZE){  
  140. printf("隊列未初始化/n");  
  141. return ;  
  142.  
  143. printf("---Queue View---/n");  
  144. printf("front=%d , rear=%d/n", Q.front, Q.rear);  
  145. if(Q.rear>=Q.front) {  
  146. printf("..... ....../n");  
  147. for(i=Q.front; i<Q.rear; i++) {  
  148. printf("%5d/t", i);  
  149. PrintElem(Q.base[i]);  
  150. printf("/n");  
  151.  
  152. if(i<MAXQSIZE) printf("..... ....../n");  
  153. } else {  
  154. for(i=0; i<Q.rear; i++) {  
  155. printf("%5d/t", i);  
  156. PrintElem(Q.base[i]);  
  157. printf("/n");  
  158.  
  159. printf("..... ....../n");  
  160. for(i=Q.front; i<MAXQSIZE; i++) {  
  161. printf("%5d/t", i);  
  162. PrintElem(Q.base[i]);  
  163. printf("/n");  
  164.  
  165.  
  166. printf("--- view end ---/n");  
  167.  
  168. ******/ //TODO: 刪除此行以便使用QueueView()  
  169.  
  170. //取消ElemType的默認定義,以免影響其它部分  
  171. #ifdef USE_DEFAULT_ELEMTYPE  
  172. #undef ElemType  
  173. #undef USE_EFAULT_ELEMTYPE  
  174. #endif  
  175.  
  176. #endif //SQQUEUE_H_INCLUDED  
  177.  
  178. #include <stdio.h>  
  179. #include <stdlib.h>  
  180. #include "sqqueue.h"  
  181.  
  182. //初始化系統(tǒng)  
  183.  
  184.  
  185. void Finalize(SqQueue &q);  
  186.  
  187. ////////////////////////////////////////////  
  188. //主程序  
  189. int main()  
  190. {  
  191. SqQueue q; //循環(huán)隊列  
  192. int x;  
  193.  
  194. //系統(tǒng)初始化  
  195. InitQueue(q);  
  196. printf("數(shù)據(jù)元素進隊列,以0結(jié)束");  
  197. scanf("%d",&x);  
  198. while(x!=0){  
  199. EnQueue(q,x);  
  200. scanf("%d",&x);  
  201. }  
  202. printf("/n隊列元素的個數(shù)");  
  203.  
  204. printf("%d",QueueLength(q));  
  205.  
  206.  
  207. printf("/n頭元素是:");  
  208. if(!QueueEmpty(q)){  
  209. if(GetHead(q,x)==OK)  
  210. printf("%d",x);  
  211. }  
  212.  
  213.  
  214. printf("/n出隊列,先進先出");  
  215. if( DeQueue(q,x)==OK)  
  216. printf("%d",x);  
  217. printf("/n此時的對頭是:");  
  218. if(!QueueEmpty(q)){  
  219. if(GetHead(q,x)==OK)  
  220. printf("%d/n",x);  
  221. }  
  222.  
  223. }  

實現(xiàn)的效果:

如何實現(xiàn)循環(huán)隊列

以上所述就是本文的全部內(nèi)容了,希望大家能夠理解。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲在线播放| 色一情一伦一子一伦一区| 催眠调教后宫乱淫校园| av伦理在线| 国产成人亚洲综合色影视| 亚洲视频资源在线| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲AV无码乱码国产精品牛牛| 国产aⅴ激情无码久久久无码| 久久99影视| 久久久亚洲高清| 亚洲片区在线| 波波电影院一区二区三区| 黄色免费在线播放| 欧美熟妇激情一区二区三区| 日韩 欧美 中文| 中文字幕人妻一区二区三区在线视频| 精品国内产的精品视频在线观看| 男女羞羞电影免费观看| 国产亚洲精品bv在线观看| 亚洲美女视频在线观看| 懂色av色香蕉一区二区蜜桃| 欧美色老头old∨ideo| 亚洲天堂2024| 日韩精品欧美在线| 欧美一区不卡| 美洲精品一卡2卡三卡4卡四卡| 在线成人亚洲| 亚洲自拍偷拍九九九| av小说在线| 99久久久免费精品| 欧美日韩国产不卡在线看| 欧美年轻男男videosbes| 国产精品久久久久久久久粉嫩av| 免费成人黄色网址| 在线观看一二三区| 日韩专区在线播放| 亚洲国产精品99久久| h狠狠躁死你h高h| 亚洲亚洲人成综合网络| 中文字幕av一区二区三区人妻少妇| 久操成人在线视频| 五月天黄色网址| 深夜成人在线| 日本在线不卡一区| www.蜜桃av| 骚虎视频欧美| 国产精品成人久久电影| 不卡av播放| 无码人妻aⅴ一区二区三区有奶水| 亚洲自拍偷拍福利| 日韩欧美中文一区二区| 久久一日本道色综合久久| 久久亚洲综合国产精品99麻豆精品福利| 亚洲另类视频| 国产不卡一区二区三区在线观看| 日韩一区二区三区视频在线观看| 日韩欧美中文字幕一区二区三区| 国产高清视频一区三区| 91精品国产乱码久久久| 国产精品美女久久久久人| 免费中国女人69xxxxx视频| 国产v综合v亚洲欧| 一二三在线视频| 女人香蕉久久**毛片精品| 国产性生活视频| 色狼人综合干| 日韩视频在线免费| 波多野结衣乳巨码无在线观看| 羞羞污视频在线观看| 久久久久久蜜桃| 99热手机在线| 亚洲理论中文字幕| 日韩欧美色综合网站| 国产成人亚洲综合小说区| 久久久久久久综合| 日本泡妞xxxx免费视频软件| 日本不卡一二三区黄网| aa国产成人| 日韩精彩视频| 日本一本在线观看| 亚洲mm色国产网站| 宅男在线国产精品| 天天在线免费视频| 欧美一进一出视频| 精品少妇av| 先锋av资源色| 国产大片一区二区三区| 欧美大交乱xxxx| 丝袜国产免费观看| 黄色一级视频免费观看| 国产在线一区二区三区四区| 日本怡春院一区二区| 亚洲成人自拍| 一本色道久久综合亚洲91| 品天堂xxxx高清| 黄色片中文字幕| 国产综合视频在线| jizzjizz免费大全| 99精品热视频只有精品10| av色综合久久天堂av综合| 久久久91精品| 国产激情无套内精对白视频| 国产精品久久久久久久天堂第1集| www国产精品内射老熟女| 国产精品日韩在线| 久久综合网络一区二区| 欧美午夜不卡在线观看免费| 成人伦理视频网站| 免费观看成人性生生活片| 国产伦精品一区二区三区照片91| 136福利视频| 天堂а√在线资源在线| 中文字字幕码一二三区| 久久久久久久久精| 男人天堂视频在线| 国产黄页在线观看| 99精品视频一区| 青青草在线观看视频| 国产一区二区三区站长工具| av动漫免费观看| 天堂久久一区| 欧洲杯足球赛直播| 白白色在线发布| 国产精品美女呻吟| 亚洲国产日韩欧美在线观看| 欧美一区二区三区在线观看| 欧美电影免费观看| 国产剧情一区二区在线观看| 99久久精品国产毛片| 亚洲都市激情| 国产精品视频不卡| 色婷婷综合中文久久一本| 91网在线免费观看| 日本三级韩国三级久久| 古装做爰无遮挡三级聊斋艳谭| 国产麻豆剧传媒精品国产| 最近中文av字幕在线中文| av在线下载| 5566先锋影音夜色资源站在线观看| 第九区2中文字幕| 亚洲免费成人在线| 午夜视频在线观看一区二区| 欧美freesex| 一区二区三区电影| 99热这里只有精品在线观看| 在线观看黄网站免费继续| 亚欧无线一线二线三线区别| 久久久久久九九| 青青青国产精品| 色婷婷久久99综合精品jk白丝| 第一会所亚洲原创| 日韩女优电影在线观看| 不卡视频在线观看| а√最新版天堂中文在线| 精品一区二区免费视频| 欧美连裤袜在线视频| 四虎国产精品成人免费影视| 日韩一区二区福利| 亚洲欧美一区二区三区久本道91| 青青草福利视频| 久久亚洲免费| 色一情一欲一爱一乱| 久久五月激情| 成人免费视频一区| 一个人看免费www视频有多爽| 欧美激情喷水| 奇米网人体黄视频| 精品国产亚洲一区二区麻豆| 日本黄色免费在线观看| 亚洲最大成人| 中文字幕av无码一区二区三区| 神马久久影视大全| 成人aaaa免费全部观看| av电影中文字幕| 欧美日韩1区2区| 人与人69性欧美三人交| 性一交一乱一伦一色一情| 视频免费观看| 国产精品日韩欧美一区二区| 黄视频免费在线看| 最近2018年在线中文字幕高清| 久久久久97国产| 中文字幕av资源一区| 久久精品二区亚洲w码| 一呦二呦三呦国产精品| 干日本少妇首页| 狠狠色噜噜狠狠狠狠97| 亚洲美女少妇撒尿| 瑟瑟在线观看| 在线观看免费观看在线91| 日本中文在线视频| 免费看黄网站在线观看| 欧美激情一区二区三区不卡| 国产欧美一二三区| 精品视频一区二区不卡| 国产一区二区自拍视频| 国产美女99p| 国产av不卡一区二区| 国偷自产av一区二区三区麻豆| 校园春色另类视频| 日韩精品在线视频| 精品国产一区二区三区四区在线观看| 日本电影免费看| 爱爱精品视频| 五月天久久比比资源色| 国产一区二区精品久| 91插插插影院| 亚洲免费av一区二区三区| 国产福利91精品一区| 日韩av片专区| 欧美 日韩 国产 成人 在线 91| 午夜精品福利久久久| 国产一区二区福利视频| 精品国产18久久久久久洗澡| 美女免费视频黄| 欧美午夜精品伦理| 性爱在线免费视频| 久久精品一区二区三区中文字幕| 青青青在线视频播放| 国产婷婷色一区二区三区四区| 日韩女同互慰一区二区| 国产亚洲一本大道中文在线| 中文字幕在线观看第三页| 日本黄色免费录像| 欧美日韩乱国产| 一区在线免费| 久久久亚洲欧洲日产国码aⅴ| 激情av综合网| 羞羞污视频在线观看| 欧美一级生活片| 国产suv精品一区| 亚洲香蕉网站| 色综合视频一区二区三区44| 农村末发育av片一区二区| 在线播放日韩欧美| 国产99在线| 四虎永久国产精品| missav|免费高清av在线看| 99视频热这里只有精品免费| 97视频一区| 国模一区二区三区白浆| xxxxx在线观看| 日韩一区二区三区四区| 国产无遮挡呻吟娇喘视频| 亚洲男人第一天堂| 19禁羞羞电影院在线观看| 国产视频久久久久| 91在线网址| 国产精品主播| 天天干天天操天天爱| 久久久久久a亚洲欧洲aⅴ| 亚洲欧美综合图片| 青青艹在线观看| 欧美在线中文| 亚洲影视在线观看| 永久91嫩草亚洲精品人人| 亚洲第一页在线播放| 亚洲精品写真福利| 另类亚洲自拍| 国产chinese男男gaygay网站| 久久久99精品久久| 人成免费电影一二三区在线观看| siro系绝美精品系列| 美女与牲口做爰视频在线观看| 国产aⅴ爽av久久久久| 日韩欧美黄色动漫| 国产精品第一| 亚洲精选在线视频| 99成人超碰| 欧美一区二区三区免费大片| 在线综合亚洲欧美在线视频| 亚洲春色综合另类校园电影| 日韩精品――中文字幕| 亚洲一区二区成人在线观看| 欧美一级成年大片在线观看| 国产一级片麻豆| www在线观看免费| 日本aⅴ大伊香蕉精品视频| 亚洲一区 在线播放| 日韩欧美精品电影| 天天综合天天做天天综合| 日韩欧美成人激情| 屁屁影院在线观看| 最近中文字幕免费| 成人手机电影网| 久久久久香蕉视频| 国产自产女人91一区在线观看| 国产91亚洲精品| 欧美视频在线观看网站| 精品人妻一区二区三区潮喷在线| 啊啊啊好爽视频| 国产成人亚洲综合青青| 毛片毛片女人毛片毛片| 91精品国产91综合久久蜜臀| 久久久一二三| 日本成人一级片| 7777精品久久久大香线蕉| 中文字幕网站视频在线| 丝袜美女在线观看| 亚洲欧美视频一区二区| 色婷婷综合久久久久| 97碰碰视频| 搡老女人一区二区三区视频tv| 免费成人美女在线观看| 日韩限制级电影在线观看| 色婷婷av一区二区三区之一色屋| 色综合中文字幕国产| 亚洲一区二区三区四区五区六区| 久久不见久久见国语| 国产精品乱码一区二区三区软件| 亚洲成人国产精品| 国精品人妻无码一区二区三区喝尿| 中文字幕一区二区三区四区免费看| 91国偷自产一区二区使用方法| 久久久久久欧美精品色一二三四| 三年中国中文观看免费播放| 欧美视频在线观看免费| 欧美电影免费播放| 亚洲午夜久久久久久久| 99久久99久久精品免费观看| 国产精品国产精品国产专区不卡| aaa国产精品视频| 久青草视频在线播放| 日本视频网址| 欧美一级日韩不卡播放免费| 欧美激情a∨在线视频播放| 制服丝袜av成人在线看|