列的特點是「先到先辦」fifo
(first in first out
),可將佇列形象地比作管道
模擬買火車票的佇列實現
#include#include#define n 100 //最大有多少個
#define datatype char //定義資料型別,定義佇列,
struct queue
;typedef struct queue queue;//簡化struct queue
void initqueue(queue *sq);//初始化順序佇列
int isempty(queue *sq);//判斷佇列是否為空
datatype gethead(queue *sq);//獲取佇列第乙個元素
void enqueue(queue *sq, datatype data);//隊列入隊
datatype dequeue(queue *sq);//佇列出隊
void showqueue(queue *sq);
void initqueue(queue *sq)
int isempty(queue *sq)
return 0;
}datatype gethead(queue *sq)
return sq->data[sq->front];//返回第乙個節點資料
}void enqueue(queue *sq, datatype data)
sq->data[sq->rear] = data;//入隊
sq->rear++;//
}datatype dequeue(queue *sq)//出隊
sq->front++;//刪除乙個元素,向前移動
return sq->data[sq->front - 1];//返回乙個元素,及刪除的元素
}void showqueue(queue *sq)
else }
}int main()
while (isempty(&q1) != 1)//只要佇列不為空,一直迴圈下去
資料結構 佇列之順序佇列
佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為...
資料結構之順序佇列
前面我們show了棧的技巧,那麼今天繼續學習下佇列的,佇列跟棧幾乎類似,所以在平時專案中用到的地方還是挺多的。第八個例子,順序佇列的實現 注 把我們先前實現的順序鍊錶的標頭檔案和實現檔案包含進來 標頭檔案 ifndef seqqueue h define seqqueue h typedef voi...
資料結構之順序佇列
本次的主題是佇列,佇列是另一種限定性的線性表 當然是人為規定的 即 它只允許在表的一端插入元素,在另一端刪除元素,故具有先進先出 fifo 的特性。本次的 主要涉及到佇列的基本操作 對列的初始化 initsqueueu 入隊操作 entersequeue sequeue q,int x 出隊操作 d...