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

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>
            久久久久久久久伊人| 久久精品免费看| 国产一区久久久| 欧美亚洲成人精品| 欧美成人a∨高清免费观看| 另类成人小视频在线| 亚洲性视频网址| 午夜精品一区二区三区电影天堂 | 国内精品久久久| 欧美成人情趣视频| 一区二区三区欧美视频| 亚洲自拍偷拍福利| 欧美激情亚洲激情| 亚洲美女在线观看| 亚洲人成欧美中文字幕| 欧美91精品| 欧美在线视频观看| 亚洲最新合集| 午夜在线播放视频欧美| 亚洲国产精品精华液2区45| 久久9热精品视频| 日韩一区二区久久| 国产精品国产自产拍高清av| 久久aⅴ国产欧美74aaa| 亚洲国产精品va| 日韩午夜黄色| 一本综合精品| 日韩午夜激情电影| 亚洲每日在线| 99成人精品| 亚洲综合视频一区| 性欧美大战久久久久久久久| 中文在线不卡| 在线亚洲美日韩| 曰韩精品一区二区| 一区二区三区精品国产| 美女精品在线| 亚洲一区日韩在线| 久久成人18免费观看| 久久综合国产精品| 欧美日韩性视频在线| 欧美精品一区二区三区蜜桃| 美女脱光内衣内裤视频久久影院| 久久aⅴ国产欧美74aaa| 欧美精品免费看| 亚洲一级片在线观看| 久久夜色精品国产亚洲aⅴ| 欧美va亚洲va日韩∨a综合色| 亚洲毛片av在线| 欧美一区二区三区成人| 麻豆国产va免费精品高清在线| 欧美激情偷拍| 国产视频自拍一区| 亚洲大片在线观看| 欧美三级精品| 亚洲国产精品久久| 久久久久久色| 在线一区二区日韩| 欧美激情一二区| 国产午夜精品理论片a级大结局| 国产精品区一区二区三| 亚洲一区二区久久| 欧美怡红院视频一区二区三区| 亚洲成色777777女色窝| 亚洲欧美日韩在线一区| 国产精品hd| 亚洲精品国产精品久久清纯直播| 免费在线观看一区二区| 国产欧美日韩麻豆91| 欧美激情一区二区三区在线| 欧美激情久久久| 在线视频你懂得一区| 亚洲视频中文| 国产三级精品在线不卡| 久久精品123| 久久精品国产亚洲aⅴ| 在线观看欧美精品| 亚洲欧美日韩国产中文| 亚洲国产精品t66y| 欧美天天影院| 欧美专区18| 欧美在线视频导航| 国产亚洲精品高潮| 巨乳诱惑日韩免费av| 久久黄色网页| 亚洲一区在线免费观看| 欧美激情按摩| 亚洲精选一区| 娇妻被交换粗又大又硬视频欧美| 亚洲精品国产视频| 99在线|亚洲一区二区| 欧美一区二区三区在| 在线播放视频一区| 亚洲一二三区在线观看| 在线观看成人一级片| 亚洲精品网站在线播放gif| 99精品视频免费在线观看| 欧美区二区三区| 亚洲最黄网站| 亚洲精品国产精品乱码不99| 久久精品一本久久99精品| 日韩视频―中文字幕| 午夜视频久久久久久| 一区二区三区毛片| 永久久久久久| 欧美国产成人在线| 夜夜嗨av一区二区三区| 一区二区三区 在线观看视频 | 99精品99| 91久久精品一区二区别| 午夜一区二区三区在线观看| 亚洲午夜精品网| 午夜精品短视频| 国产精品99久久久久久有的能看| 国产揄拍国内精品对白| 国产女人18毛片水18精品| 欧美国产视频在线| 欧美亚洲免费在线| 亚洲欧洲一区二区三区| 亚洲男人第一av网站| 国内精品国产成人| 欧美人成免费网站| 国产视频欧美| 亚洲视频你懂的| 久久视频这里只有精品| 亚洲国产成人在线播放| 亚洲精品免费网站| 亚洲精品孕妇| 亚洲国产高清在线观看视频| 亚洲精品日韩在线观看| 亚洲毛片在线观看| 亚洲国产精品t66y| 女生裸体视频一区二区三区| 欧美一区午夜视频在线观看| 欧美一区二区三区精品电影| 亚洲国产成人午夜在线一区 | 开元免费观看欧美电视剧网站| 亚洲女人天堂av| 免费观看久久久4p| 亚洲高清在线观看一区| 欧美在线不卡视频| 亚洲高清一区二| 欧美一区二区三区视频在线观看| 免费亚洲电影在线| 欧美日韩精品免费观看视一区二区 | 久久gogo国模啪啪人体图| 久久蜜桃精品| 欧美性猛交一区二区三区精品| 欧美亚州在线观看| 亚洲高清毛片| 亚洲一区二区在线| 亚洲欧美综合网| 亚洲女同精品视频| 亚洲欧美在线视频观看| 国产精品私人影院| 亚洲无玛一区| 亚洲精品免费看| 欧美高清在线视频观看不卡| 国产一区二区三区在线观看精品| 亚洲乱码视频| 欧美成人免费全部观看天天性色| 久久婷婷丁香| 欧美在线免费视屏| 亚洲欧美精品伊人久久| 小辣椒精品导航| 久久综合中文| 亚洲国产精品久久久久秋霞影院 | 亚洲午夜久久久| 国产精品视频最多的网站| 欧美一区亚洲一区| 亚洲色无码播放| 亚洲视频www| 黄色亚洲在线| 亚洲伦理在线观看| 国产亚洲人成a一在线v站| 亚洲高清不卡| 国产欧美日韩在线| 亚洲大片在线观看| 一本色道综合亚洲| 亚洲国产精品成人va在线观看| 一区二区欧美亚洲| 久久久久久穴| 一区二区在线视频播放| 亚洲精品欧美日韩专区| 欧美福利电影在线观看| 久久成人综合网| 国内成+人亚洲+欧美+综合在线| 久久精品视频在线免费观看| 女女同性精品视频| 久久国产日本精品| 欧美黑人在线播放| 久久久久看片| 国产视频一区二区在线观看| 狂野欧美一区| 国产精品一区二区视频| 亚洲精品免费观看| 国产一区二区三区在线播放免费观看| 日韩午夜精品| 99精品免费视频| 亚洲欧美日本另类|