佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。
佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為出隊。因為佇列只允許在一端插入,在另一端刪除,所以只有最早進入佇列的元素才能最先從佇列中刪除,故佇列又稱為先進先出(fifo—first in first out)線性表。
順序佇列是指分配一塊連續的儲存單元存放佇列中的元素,並附設兩個指標front和rear分別指示隊頭元素和隊尾元素的位置。
隊頭指標指向隊頭元素,隊尾指標指向隊尾元素的下乙個位置。
//佇列之順序佇列
#include "stdafx.cpp"
#define elementtype int
#define maxsize 50
typedef struct sequeue;
/*初始化空佇列
*/void initqueue(sequeue &q)
/*判斷佇列是否為空
count==0 || q.front == q.rear ==0
*/bool queueempty(sequeue q)
return false;}/*
入隊操作
1.判斷佇列是否已滿
2.賦值給隊尾,隊尾指標+1
*/bool enqueue(sequeue &q,elementtype e)
q.data[q.rear] = e;
q.rear++;
q.count++;
return true;}/*
出隊操作
1.判斷佇列是否為空
2.取出隊頭元素,隊頭指標+1
*/elementtype dequeue(sequeue &q)
elementtype e = q.data[q.front];
q.front++;
q.count--;
return e;
}
資料結構之佇列 順序佇列
列的特點是 先到先辦 fifo first in first out 可將佇列形象地比作管道 模擬買火車票的佇列實現 include include define n 100 最大有多少個 define datatype char 定義資料型別,定義佇列,struct queue typedef s...
資料結構之順序佇列
前面我們show了棧的技巧,那麼今天繼續學習下佇列的,佇列跟棧幾乎類似,所以在平時專案中用到的地方還是挺多的。第八個例子,順序佇列的實現 注 把我們先前實現的順序鍊錶的標頭檔案和實現檔案包含進來 標頭檔案 ifndef seqqueue h define seqqueue h typedef voi...
資料結構之順序佇列
本次的主題是佇列,佇列是另一種限定性的線性表 當然是人為規定的 即 它只允許在表的一端插入元素,在另一端刪除元素,故具有先進先出 fifo 的特性。本次的 主要涉及到佇列的基本操作 對列的初始化 initsqueueu 入隊操作 entersequeue sequeue q,int x 出隊操作 d...