佇列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表
佇列是一種先進後出(first in first out)。
1 佇列的順序儲存結構
佇列的頭尾相接的順序儲存結構成為迴圈佇列,如下圖所示
判斷佇列滿不滿:當隊列為空時,front = rear 當佇列滿時,我們修改其條件,保留乙個元素空間。也就是說,佇列滿時,陣列中還有乙個空閒單位。如下圖所示
則佇列滿的條件(rear + 1)% maxsize == front
佇列長度計算公式: (rear - front + maxsize)%maxsize
佇列的順序儲存結構的結構體和函式宣告如下:
#define maxsize 10
typedef int datatype;
typedef struct
queue;
bool initqueue(queue *s);
int queuelength(queue s);
bool fullqueue(queue s);
bool emptyqueue(queue s);
bool enqueue(queue *s, datatype e);
bool dequeue(queue *s, datatype &e);
函式**不再實現
參考: 大話資料結構
資料結構中佇列的基本操作實現
佇列是一種特殊的線性表,在這種線性表中,刪除運算限定在表的一段進行,而插入運算限定在表的另一端進行,通常,約定把允許插入的一端稱為隊尾,把允許刪除的一端稱為隊首。佇列進出的原則是先進隊的先出隊,即先進先出原則。佇列在計算機程式設計中經常被用到,如windows作業系統的訊息佇列。接下來我們看一下佇列...
C語言資料結構中佇列的相關操作
include define maxsize 4 宣告佇列元素,可以任意定製 typedef int bool int menu select 宣告選擇函式 typedef struct queue 宣告結構體型別 queue void create queue queue q,int maxsiz...
資料結構中佇列的鏈式儲存結構的基本操作
include include 定義 front指標指向頭結點,當front rear時,表示空佇列 typedef int qelemtype typedef struct qnodeqnode,queueptr typedef structlinkqueue 初始化 void init queu...