資料結構模板之六 順序隊

2021-08-20 22:55:04 字數 1018 閱讀 4130

佇列是一種操作受限的線性表,和棧的一端不允許操作不同,佇列的兩端都可進行操作,而且只能是一端進(插入操作),另一端出(刪除操作)

。進行插入操作的一端稱為隊尾,進行刪除操作的一端稱為隊首或隊頭。新元素

進隊後便成為新的隊尾元素(棧的新元素進入則是棧頂元素),元素

出隊後,其後繼元素成為新的隊首元素。

所以,佇列又稱為先進先出表。

採用順序儲存結構的佇列稱為

順序隊

隊空的條件為q->front = q->rear,進隊時隊尾指標rear加1,隊滿時q->rear == max-1(存放元素陣列的最大下標)

#include #include using namespace std;

#define maxsize 50

typedef int elemtype;

typedef struct

sqqueue; //順序隊型別

/*****初始化佇列*****/

void initqueue(sqqueue * &q)

/*****銷毀佇列*****/

void destroyqueue(sqqueue * &q)

/*****判斷佇列是否為空*****/

bool queueempty(sqqueue *q)

/*****進佇列*****/

bool enqueue(sqqueue * &q,elemtype e)

/*****出佇列*****/

bool dequeue(sqqueue * &q,elemtype &e)

int main()

---**和部分內容參考自《資料結構教程》

資料結構模板之七 環形隊

相比順序隊,環形隊不會出現假溢位的現象 由於每次進隊操作時隊尾指標rear增1,而每次出隊時頭指標front也是增1,順序隊中的front與rear一直在逼近maxsize,當rear maxsize 1時,此時 隊滿 無法再進隊,但實際上佇列裡仍然有空位置 若把存放資料的陣列 首尾相連 將它視作一...

資料結構模板 棧

此部落格是存的是我自己編寫的棧模板,如有錯誤請指出棧是操作受限的線性表,只允許在棧頂進行插入和刪除操作,遵循 後進先出 原則。include include define elemtype int define maxsize 1000 using namespace std 這是順序棧的模板 ty...

資料結構模板 佇列

此部落格是存的是我自己編寫的佇列模板,如有錯誤請指出佇列是操作受限的線性表,只允許在隊頭進行刪除操作,在隊尾進行插入操作,遵循 先進先出 原則。順序隊 存在假溢位問題 include include define elemtype int define maxsize 1000 using name...