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

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

使用C語言來解決循環隊列問題的方法

2020-05-23 14:15:55
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了使用C語言來解決循環隊列問題的方法,來自ACM的練習題實例,需要的朋友可以參考下

題目描述:

大家都知道數據結構里面有一個結構叫做循環隊列。顧名思義,這是一個隊列,并且是循環的。但是現在,淘氣的囧哥給這個循環隊列加上了一些規矩,其中有5條指令:

(1) Push K, 讓元素K進隊列。

(2) Pop,對頭元素出隊列。

(3) Query K,查找隊列中第K個元素,注意K的合法性。

(4) Isempty,判斷隊列是否為空。

(5) Isfull,判斷隊列是否已滿。

現在有N行指令,并且告訴你隊列大小是M。

輸入:

第一行包含兩個整數N和M。1<=N,M<=100000。

接下來有N行,表示指令,指令格式見題目描述。

其中元素均在int范圍。

輸出:

對于指令(1),若隊列已滿,輸出failed,否則不做輸出。

對于指令(2),若隊列已空,輸出failed,否則不做輸出。

對于指令(3),輸出隊列中第K個元素,若不存在,輸出failed。

對于指令(4)和(5),則用yes或者no回答。

詳情見樣例。

樣例輸入:

12 2Push 1Push 2Push 3Query 2Query 3IsemptyIsfullPopPopPopIsemptyIsfull

樣例輸出:

failed2failednoyesfailedyesno

AC代碼:

 

 
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4.  
  5. #define queuesize 100001 //最大隊列長度  
  6.  
  7. struct queue  
  8. {  
  9. int front;  
  10. int rear;  
  11. int data[queuesize];  
  12. int count; //記錄隊列中的元素  
  13. };  
  14.  
  15. void InitQueue(struct queue *Q);  
  16. void EnQueue(struct queue *Q, int element, int m);  
  17. void Dequeue(struct queue *Q, int m);  
  18. void QueueSearch(struct queue *Q, int k, int m);  
  19.  
  20. int main()  
  21. {  
  22. int n, m, i, element, k, flag;  
  23. char command[10];  
  24.  
  25. while(scanf("%d%d",&n, &m) != EOF)  
  26. {  
  27. if(n < 1 || m > 100000)  
  28. return 0;  
  29. struct queue *Q;  
  30. Q = malloc(sizeof(struct queue));  
  31. InitQueue(Q);  
  32. for(i = 0; i < n; i ++)  
  33. {  
  34. scanf("%s",command);  
  35. if (strcmp(command,"Push") == 0)  
  36. {  
  37. scanf("%d",&element);  
  38. EnQueue(Q, element, m);  
  39. }else if (strcmp(command,"Pop") == 0)  
  40. {  
  41. Dequeue(Q, m);  
  42. }else if (strcmp(command,"Query") == 0)  
  43. {  
  44. scanf("%d",&k);  
  45. QueueSearch(Q, k, m);  
  46. }else if (strcmp(command,"Isempty") == 0)  
  47. {  
  48. flag = (Q -> count == 0)? 1 : 0;  
  49. if(flag)  
  50. {  
  51. printf("yes/n");  
  52. }else 
  53. {  
  54. printf("no/n");  
  55. }  
  56. }else if (strcmp(command,"Isfull") == 0)  
  57. {  
  58. flag = (Q -> count == m)? 1 : 0;  
  59. if(flag)  
  60. {  
  61. printf("yes/n");  
  62. }else 
  63. {  
  64. printf("no/n");  
  65. }  
  66. }  
  67. }  
  68. }  
  69. return 0;  
  70. }  
  71.  
  72. /**  
  73. * Description:隊列初始化  
  74. */ 
  75. void InitQueue(struct queue *Q)  
  76. {  
  77. Q -> front = Q -> rear = 0;  
  78. Q -> count = 0;  
  79. }  
  80.  
  81. /**  
  82. * Description:入隊操作  
  83. */ 
  84. void EnQueue(struct queue *Q, int element, int m)  
  85. {  
  86. int flag;  
  87. flag = (Q -> count == m)? 1 : 0;  
  88.  
  89. if(!flag)  
  90. {  
  91. Q -> data[Q -> rear] = element;  
  92. Q -> count ++;  
  93. Q -> rear = (Q -> rear + 1) % m;  
  94. }else 
  95. {  
  96. printf("failed/n");  
  97. }  
  98. }  
  99.  
  100. /**  
  101. * Description:出隊操作  
  102. */ 
  103. void Dequeue(struct queue *Q, int m)  
  104. {  
  105. int flag;  
  106. int element;  
  107.  
  108. flag = (Q -> count == 0)? 1 : 0;  
  109.  
  110. if(!flag)  
  111. {  
  112. element = Q -> data[Q -> front];  
  113. Q -> front = (Q -> front + 1) % m;  
  114. Q -> count --;  
  115. }else 
  116. {  
  117. printf("failed/n");  
  118. }  
  119. }  
  120.  
  121. /**  
  122. * Description:查找隊列中的指定元素  
  123. */ 
  124. void QueueSearch(struct queue *Q, int k, int m)  
  125. {  
  126. int flag, temp;  
  127. flag = (Q -> count == 0)? 1: 0;  
  128. temp = Q -> front + k - 1;  
  129. if((!flag) && (k <= m && k >= 1))  
  130. {  
  131. if((Q -> front < Q -> rear) && ( Q-> front <= temp && Q -> rear > temp))  
  132. printf("%d/n",Q -> data[temp]);  
  133. else if((Q -> front > Q -> rear) && (temp >= Q -> front || temp < Q->rear))  
  134. printf("%d/n",Q -> data[temp]);  
  135. else if(Q -> front == Q -> rear)  
  136. printf("%d/n",Q -> data[temp]);  
  137. else 
  138. printf("failed/n");  
  139. }else 
  140. {  
  141. printf("failed/n");  
  142. }  
  143. }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品专区久久| 精品视频中文字幕| 夜夜嗨av一区二区三区免费区| 国产精品成人在线| 亚洲欧美在线免费| 亚洲黄色片网站| 九九视频直播综合网| 欧美国产高跟鞋裸体秀xxxhd| 亚洲精品美女网站| 欧美孕妇孕交黑巨大网站| 深夜福利亚洲导航| 92看片淫黄大片欧美看国产片| 综合欧美国产视频二区| 日韩精品高清在线| 久久久噜噜噜久久| 精品久久久久久电影| 91性高湖久久久久久久久_久久99| 亚洲精品成人久久久| 欧美精品精品精品精品免费| 91精品视频播放| 亚洲色图13p| 成人欧美一区二区三区在线湿哒哒| 麻豆国产va免费精品高清在线| 国产欧美日韩高清| 亚洲国产天堂网精品网站| 亚洲免费成人av电影| 色综合色综合网色综合| 国产成人在线精品| 人人爽久久涩噜噜噜网站| 国产97人人超碰caoprom| 国产在线日韩在线| 欧美激情精品久久久久久久变态| 国产精品黄色影片导航在线观看| 亚洲无限乱码一二三四麻| 97超级碰在线看视频免费在线看| 日韩中文字幕亚洲| 91久久精品国产91久久| 国产一区二区欧美日韩| 欧美在线中文字幕| 欧美一级视频免费在线观看| 高清欧美性猛交xxxx| 色老头一区二区三区| 6080yy精品一区二区三区| 国产精品wwww| 久久99国产精品自在自在app| 欧美午夜片在线免费观看| 久久免费国产精品1| 亚洲一区二区三区在线免费观看| 精品国产美女在线| 97视频网站入口| 欧美黄色www| 欧美最猛性xxxxx(亚洲精品)| 爱福利视频一区| 欧美日韩成人精品| 欧美成年人视频网站| 91九色精品视频| 色综合久久中文字幕综合网小说| 亚洲精品97久久| 国产一区二区三区精品久久久| 国产精品久久久久77777| 91在线免费观看网站| 欧美天堂在线观看| 久久免费视频在线| 国产最新精品视频| 日韩av免费在线看| 韩剧1988免费观看全集| 欧洲亚洲免费视频| 精品亚洲一区二区三区| 日韩电影中文字幕一区| 成人乱人伦精品视频在线观看| 欧美老肥婆性猛交视频| 久久精品在线播放| 伊人久久久久久久久久久| 欧美视频免费在线| 国精产品一区一区三区有限在线| www.xxxx精品| 日韩美女中文字幕| 欧美性受xxxx黑人猛交| 最近2019中文字幕第三页视频| 92福利视频午夜1000合集在线观看| 国产精品久久久久久久久久久久久| 美女视频黄免费的亚洲男人天堂| 欧美成人午夜影院| 国产精品爽爽ⅴa在线观看| 超碰日本道色综合久久综合| 欧美高清性猛交| 亚洲国产精久久久久久| 精品亚洲aⅴ在线观看| 久久久极品av| 操人视频在线观看欧美| 九九九久久国产免费| 成人激情视频在线观看| 丝袜美腿亚洲一区二区| 夜夜嗨av一区二区三区四区| 一区二区三区视频免费在线观看| 九九热r在线视频精品| 最好看的2019年中文视频| 久久av在线看| 中文字幕亚洲在线| 欧美最猛性xxxxx(亚洲精品)| 亚洲第一中文字幕| 国内精品国产三级国产在线专| 国产一区二区在线播放| 91极品视频在线| 国产精品亚洲精品| 国产丝袜一区视频在线观看| 91日本在线观看| 亚洲成人网在线观看| 97国产在线视频| www.久久色.com| 国产极品精品在线观看| 一夜七次郎国产精品亚洲| 亚洲国产欧美日韩精品| 欧美日韩第一视频| 亚洲自拍偷拍第一页| 欧美乱大交做爰xxxⅹ性3| 色综合久久精品亚洲国产| 韩国一区二区电影| 日本欧美在线视频| 欧美色另类天堂2015| 亚洲成人aaa| 在线观看久久久久久| 不卡伊人av在线播放| 欧美在线视频在线播放完整版免费观看| 欧美一级电影免费在线观看| 久久久久久国产精品三级玉女聊斋| 亚洲电影免费观看高清| 国产精品女主播视频| 欧美国产日本在线| 激情久久av一区av二区av三区| 久久久久久久国产精品| 国产国语刺激对白av不卡| 欧美精品在线免费观看| 亚洲女人初尝黑人巨大| 久久久久久久久久久久av| 日本中文字幕成人| 亚洲系列中文字幕| 国产欧美一区二区三区久久| 欧美国产日韩一区| 国内精品模特av私拍在线观看| 久久久这里只有精品视频| 日韩av电影在线网| 久久久久久久久国产| 国产午夜精品视频| 亚洲精品福利资源站| 黄色精品在线看| 欧美激情videos| 九九久久综合网站| 久久这里只有精品视频首页| 亚洲美女av黄| 国内精品模特av私拍在线观看| 日韩欧美精品在线观看| 欧美肥婆姓交大片| 欧美一区二区三区艳史| 欧美精品亚州精品| 欧美美最猛性xxxxxx| 精品夜色国产国偷在线| 在线亚洲国产精品网| 久久久噜噜噜久久中文字免| 久99久在线视频| www.欧美三级电影.com| 欧美www视频在线观看| 国产精品va在线播放我和闺蜜| 国产精品福利网站|