青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Pencil.C++

更新速度可能會晚于http://blog.csdn.net/bilaopao

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  34 隨筆 :: 0 文章 :: 40 評論 :: 0 Trackbacks
隊列簡介:

隊列(Queue)是一種數據結構,可以在隊列的一端插入元素而在隊列的另一端刪除元素。

  ( 1 )允許刪除的一端稱為 隊頭( Front ) 。
  ( 2 )允許插入的一端稱為 隊尾( Rear ) 。
  ( 3 )當隊列中沒有元素時稱為 空隊列 。
  ( 4 )隊列亦稱作先進先出( First In First Out )的線性表,簡稱為 FIFO 表 。

隊列的修改是依先進先出的原則進行的。新來的成員總是加入隊尾(即不允許 " 加塞 " ),每次離開的成員總是隊列頭上的(不允許中途離隊),即當前 " 最老的 " 成員離隊。

多任務系統是一個典型的隊列示例,在其中完成作業的調度。假設有五個程序等待執行, 它們將被放入一個隊列,如果有第六個程序要執行,它將被放在隊列的末尾。隊列中首位的程序首先執行。

 

隊列實現:
  1 /*
  2 
  3 (1)initQueue(Q) 
  4   置空隊。構造一個空隊列Q。 
  5 
  6 (2)isEmpty(Q) 
  7   判斷隊列是否空。若隊列Q為空,則返回真值,否則返回假值。
  8  
  9 (3)isFull(Q)
 10    判斷隊列是否以滿, 以滿返回true, 沒滿則返回flase
 11 
 12 (4) addQueue(Q,x) 
 13   若隊列Q非滿,則將元素x插入Q的隊尾。此操作簡稱 入隊 。 
 14 
 15 (5) DelQueue(Q) 
 16   若隊列Q非空,則刪去Q的隊頭元素,并返回該元素。此操作簡稱 出隊 。 
 17 
 18 (6) queueFront(Q) 
 19   若隊列Q非空,則返回隊頭元素,但不改變隊列Q的狀態。 
 20 
 21 (7) queueDisplay(Q) 
 22   顯示隊列中的元素。
 23 */
 24 
 25 #include "iostream.h"
 26 
 27 #define maxSize 10  // 存儲數據大小, 可以隨便設定值
 28 
 29 struct Queue
 30 {
 31  int data[maxSize];
 32  int front;  // 隊首 
 33  int rear;  // 隊尾
 34 };
 35 
 36 void initQueue( Queue &Q );
 37 bool isEmpty( Queue &Q );
 38 bool isFull( Queue &Q );
 39 bool addQueue( Queue &Q, int x );
 40 bool delQueue( Queue &Q );
 41 int queueFront( Queue &Q );
 42 bool queueDisplay( Queue &Q );
 43 
 44 int main( void )
 45 {
 46  int i;
 47  int num;
 48  Queue Q;
 49 
 50  initQueue( Q );  // 初始化隊列
 51  
 52  cout << "輸入入隊10個數" << endl;
 53  /* 入隊 */
 54  for ( i = 0; i < 10; i++ )
 55  {
 56   cin >> num;
 57   if ( addQueue( Q, num ) == false )
 58   {
 59    cout << "隊列以滿!" << endl;
 60   }
 61  }
 62 
 63  cout << "隊頭: " << queueFront( Q ) << endl; // 顯示隊頭
 64  cout << "隊列所有元素:" << endl;
 65  if ( queueDisplay( Q ) == false )    // 顯示隊列所有元素
 66  {
 67   cout << "隊列為空!" << endl;
 68  }
 69  
 70  /* 出隊 */
 71  for ( i = 0; i < 5; i++ )
 72  {
 73   if ( delQueue( Q ) == false )
 74   {
 75    cout << "隊列以空" << endl;
 76   }
 77  }
 78 
 79  cout << endl;
 80  cout << endl;
 81  cout << "================== 出隊以后 ===========================" << endl;
 82  cout << "出隊后隊頭: " << queueFront( Q ) << endl; // 顯示隊頭
 83  cout << "出隊后隊列所有元素:" << endl;
 84  if ( queueDisplay( Q ) == false )     // 顯示隊列所有元素
 85  {
 86   cout << "隊列為空!" << endl;
 87  } 
 88  
 89  cout << endl;
 90  cout << "輸入入隊5個數" << endl;
 91  /* 再入隊 */
 92  for ( i = 0; i < 5; i++ )
 93  {
 94   cin >> num;
 95   if ( addQueue( Q, num ) == false )
 96   {
 97    cout << "隊列以滿!" << endl;
 98   }
 99  }
100 
101  cout << endl;
102  cout << endl;
103  cout << "================== 入隊以后 ===========================" << endl;
104  cout << "入隊后隊頭: " << queueFront( Q ) << endl; // 顯示隊頭
105  cout << "入隊后隊列所有元素:" << endl;
106  if ( queueDisplay( Q ) == false )     // 顯示隊列所有元素
107  {
108   cout << "隊列為空!" << endl;
109  } 
110  return 0;
111 }
112 
113 /* 初始化隊列 */
114 void initQueue( Queue &Q )
115 {
116  int i;
117 
118  for ( i = 0; i < maxSize; i++ )
119  {
120   Q.data[i] = 0;  // 初始值都為0
121   Q.front = 0;
122   Q.rear = 0;
123  }
124 }
125 
126 /* 判斷隊列是否為空, 為空返回true, 不為空則返回flase */
127 bool isEmpty( Queue &Q )
128 {
129  if ( Q.front != 0 )  // 如果隊頭不等于0,則表示不為空
130  {
131   return false;
132  }
133  
134  return true;
135 }
136 
137 /* 判斷隊列是否以滿, 以滿返回true, 沒滿則返回flase */
138 bool isFull( Queue &Q )
139 {
140  if ( Q.data[maxSize - 1== 0 )  // 如果隊尾等于0,則表示隊列沒滿
141  {
142   return false;
143  }
144 
145  return true;
146 }
147 
148 /* 若隊列Q非滿,則將元素x插入Q的隊尾.此操作簡稱 入隊 */
149 bool addQueue( Queue &Q, int x )
150 {
151  if ( isFull( Q ) == true ) // 檢測隊列是否以滿
152  {
153   return false;
154  }
155 
156  int i;
157 
158  for ( i = 0; i < maxSize; i++ )
159  {
160   if ( Q.data[i] == 0 ) // 當為0時則表示此位置沒被復值,即可在此位置入隊,且該值變為隊尾
161   {
162    if ( i == 0 ) // 設隊頭
163    {
164     Q.front = x;
165    }
166 
167    Q.data[i] = x;
168 
169    Q.rear = x;  // 設隊尾,每添加一個值,則該值即為隊尾
170    return true;
171   }
172  }
173 }
174 
175 /* 若隊列Q非空,則刪去Q的隊頭元素,并返回該元素. 此操作簡稱 出隊 */
176 bool delQueue( Queue &Q )
177 {
178  if ( isEmpty( Q ) == true ) // 檢測隊列是否為空
179  {
180   return false;
181  }
182 
183  int i;
184  
185  /* 刪除隊頭元素,并將所有隊列元素提前一個位置 */
186  for ( i = 0; i < maxSize; i++ )
187  {
188   if ( Q.data[i] == 0 || i == maxSize - 1 ) // 判斷隊列中元素是否以全部提前
189   {
190    Q.data[i] = 0;
191    Q.front = Q.data[0]; // 設隊頭,每出隊一個值,則原來第二個值變成隊頭
192    return true;
193   }
194 
195   Q.data[i] = Q.data[i+1]; // 將隊列元素提前
196  }
197 }
198 
199 /* 若隊列Q非空,則返回隊頭元素,但不改變隊列Q的狀態. */
200 int queueFront( Queue &Q )
201 {
202  if ( isEmpty( Q ) == true ) // 檢測隊列是否為空
203  {
204   return false;
205  }
206  
207  return Q.front;  // 返回隊頭元素
208 
209 }
210 
211 /* 顯示隊列中的元素 */
212 bool queueDisplay( Queue &Q )
213 {
214  if ( isEmpty( Q ) == true ) // 檢測隊列是否為空
215  {
216   return false;
217  }
218 
219  int i;
220 
221  for ( i = 0; i < maxSize; i++ )
222  {
223   if ( Q.data[i] == 0 ) // 判斷隊列中元素是否以全部顯示
224   {
225    return true;
226   }
227 
228   cout << "" << i + 1 << "個: " << Q.data[i] << endl;
229  }
230  
231 }


本文來自CSDN博客,轉載出處:http://blog.csdn.net/dadalan/archive/2008/09/05/2883946.aspx
posted on 2009-09-27 20:17 Pencil.C++ 閱讀(1292) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構與算法
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品久久久久7777婷婷| 久久精品一区二区| 欧美日韩亚洲91| 久久久国产精彩视频美女艺术照福利| 这里只有精品视频在线| 亚洲桃色在线一区| 亚洲综合日本| 久久久久久免费| 美女国产精品| 欧美国产日韩xxxxx| 欧美视频一区二| 国产精品一区在线播放| 很黄很黄激情成人| 亚洲精品一区二区三区四区高清| 妖精视频成人观看www| 午夜亚洲性色福利视频| 久久久久国色av免费看影院| 亚洲国产精品一区二区www| 亚洲精品免费网站| 欧美中文字幕视频| 欧美日韩精品一本二本三本| 国产视频在线观看一区二区| 亚洲人屁股眼子交8| 午夜视频在线观看一区| 亚洲国产成人久久综合一区| 激情婷婷亚洲| 日韩一二三在线视频播| 午夜精品国产精品大乳美女| 久久人人97超碰国产公开结果 | 亚洲一二三区在线观看| 久久久久久久激情视频| 欧美午夜精品一区二区三区| 好吊日精品视频| 亚洲综合色视频| 亚洲国产精品视频一区| 久久99伊人| 欧美日韩综合在线| 亚洲日韩视频| 另类专区欧美制服同性| 午夜激情亚洲| 国产精品国产一区二区| 一区二区欧美激情| 亚洲福利视频二区| 久久男女视频| 影音先锋亚洲视频| 久久久噜噜噜久久中文字免| 亚洲欧美日韩在线| 国产精品久久久久久久午夜片| 亚洲乱码国产乱码精品精| 久久偷看各类wc女厕嘘嘘偷窃| 中文精品99久久国产香蕉| 欧美日韩精品不卡| 亚洲美女在线视频| 亚洲高清不卡| 欧美电影打屁股sp| 亚洲人成网站在线观看播放| 猛男gaygay欧美视频| 久久成人综合视频| 黄色精品免费| 麻豆视频一区二区| 免费91麻豆精品国产自产在线观看| 今天的高清视频免费播放成人 | 欧美亚洲一区在线| 亚洲自拍偷拍麻豆| 国产情人综合久久777777| 欧美一区二区在线播放| 午夜精品一区二区三区在线| 国产日韩精品一区| 久久精品免费电影| 久久久999精品免费| 一区精品在线播放| 亚洲高清123| 欧美色图首页| 亚洲欧美日韩人成在线播放| 亚洲一区二区毛片| 欧美黄网免费在线观看| 精品不卡在线| 亚洲国产你懂的| 欧美三级网页| 久久成人av少妇免费| 久久久亚洲成人| 欧美日韩国产综合新一区| 一区二区免费看| 亚洲女女女同性video| 国产亚洲va综合人人澡精品| 另类春色校园亚洲| 欧美极品一区二区三区| 午夜精彩视频在线观看不卡 | 欧美日本簧片| 午夜精品一区二区在线观看| 欧美一区成人| 亚洲国产日韩欧美一区二区三区| 91久久国产综合久久| 国产精品国产三级国产a| 久久久999成人| 欧美日本网站| 久久夜色精品| 欧美区一区二区三区| 久久精品国产亚洲一区二区三区| 麻豆91精品91久久久的内涵| 亚洲一区二区视频| 久久影院午夜论| 午夜免费在线观看精品视频| 男女视频一区二区| 欧美一区亚洲二区| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美国产三区| 欧美在线在线| 欧美日韩国产麻豆| 欧美激情片在线观看| 国产视频一区在线观看一区免费| 亚洲精品国产精品国自产观看 | 韩国精品久久久999| 亚洲免费观看高清完整版在线观看| 国产视频欧美视频| 一区二区三区福利| 99天天综合性| 欧美国产日韩精品| 欧美成人免费网站| 韩国一区二区三区美女美女秀| aa国产精品| 亚洲美女毛片| 欧美α欧美αv大片| 久久综合九色综合欧美就去吻| 国产精品视频男人的天堂| 亚洲人成毛片在线播放| 亚洲黄色免费电影| 麻豆亚洲精品| 欧美黄在线观看| 亚洲高清中文字幕| 久久综合久久美利坚合众国| 葵司免费一区二区三区四区五区| 韩国一区二区在线观看| 久久精品女人天堂| 久久综合福利| 亚洲大片av| 男女av一区三区二区色多| 欧美成人a视频| 欧美成人性生活| 欧美成年人网站| 亚洲人成在线观看一区二区| 欧美/亚洲一区| 亚洲国产综合91精品麻豆| 亚洲七七久久综合桃花剧情介绍| 美女国产一区| 亚洲毛片av| 亚洲主播在线观看| 国产欧美日本| 巨胸喷奶水www久久久免费动漫| 嫩草国产精品入口| 亚洲三级电影在线观看| 欧美精品在线视频观看| 亚洲美女诱惑| 性久久久久久| 亚洲国产va精品久久久不卡综合| 久久夜色精品国产| 最新日韩在线| 亚洲欧美国产一区二区三区| 国产精品永久免费观看| 久久九九免费| 日韩特黄影片| 久久色在线播放| 一片黄亚洲嫩模| 国产真实久久| 欧美精品日本| 欧美一级视频精品观看| 欧美黑人在线观看| 亚洲欧美大片| 亚洲经典一区| 国产日韩欧美成人| 欧美大片免费观看| 小嫩嫩精品导航| 最新精品在线| 久久综合给合| 午夜在线观看免费一区| 亚洲第一天堂无码专区| 欧美亚州一区二区三区| 久久午夜视频| 亚洲综合大片69999| 欧美国产精品劲爆| 欧美亚洲免费电影| 99视频国产精品免费观看| 国内精品视频在线观看| 欧美调教vk| 欧美激情2020午夜免费观看| 欧美一区二区三区在线播放| 日韩午夜剧场| 亚洲高清在线观看| 久久综合网络一区二区| 亚洲欧美日韩精品久久奇米色影视| 亚洲成人在线视频网站| 国产精品三区www17con| 欧美日韩国产综合新一区| 暖暖成人免费视频| 久久视频国产精品免费视频在线| 亚洲一区二区三区涩| 亚洲另类自拍| 亚洲精品美女久久久久| 亚洲第一网站免费视频| 毛片av中文字幕一区二区|