資料結構之佇列 順序佇列

2021-06-27 11:55:58 字數 1238 閱讀 7873

列的特點是「先到先辦」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...