佇列的順序實現

2021-10-17 14:06:28 字數 2223 閱讀 2634

順序佇列是佇列的順序儲存結構,順序佇列實際上也是是運算受限的順序表

和順序表一樣,順序佇列用乙個結構體來存放當前佇列中的資料。設定兩個指標front和rear(由於佇列的隊頭和隊尾的位置是變化)分別指示隊頭元素和隊尾元素在記憶體中的位置,它們的初值在佇列初始化時均應設定為0(空佇列)

規則:只允許在一段進行插入,另外一端進行刪除的線性表

相關術語:隊頭、隊尾、空佇列

特點:先進先出(fifo)-->first in first out

結構體(靜態陣列+隊頭/隊尾指標),對其進行重新命名方便理解使用。

typedef struct//自定義結構體

sequence;//對結構體重命名

void initsequence(sequence &sq)

為什麼將判斷為滿放在前面:

入隊前提條件:隊存在且有記憶體空間,如果沒有記憶體空間就不能進行入隊操作

定義乙個bool型方便呼叫

bool enquence(sequence &sq)

if (sq.front = maxsize - 1)

}

分析:隨著資料的不斷入棧,隊頭所指向的位置是不變的第乙個資料。但是隊尾需要不斷的改變去指向不同的資料元素

所以隊頭指標指向是不變的,隊尾指標指向是改變的

void entersequence(sequence &sq)

printf("入隊:");

int data;//接受資料

for (int i = 0; i < n; i++)

sq.rear--;//最後乙個資料多移動了一位

6>整體**

#include#define maxsize 5

typedef struct//自定義結構體

sequence;//對結構體重命名

void initsequence(sequence &sq)

bool emptysequence(sequence sq)

void entersequence(sequence &sq)

printf("入隊:");

int data;//接受資料

for (int i = 0; i < n; i++)

sq.rear--;//最後乙個資料多移動了一位 }}

void gosequence(sequence sq)

sq.front = 0;

}void getelem(sequence sq)

void main()

順序佇列的實現

include include typedef int elementtype 定義佇列元素型別 struct queue typedef struct queue protoqueue 佇列型別指標 protoqueue creatqueue int maxsize 建立佇列函式 bool isf...

實現順序佇列

佇列 queue 在電腦科學中,是一種先進先出的線性表。它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作。佇列可以採用順序儲存方式來實現 稱為順序佇列 或者採用鏈式儲存方式來實現 稱為鏈式佇列 實現順序佇列需要注意 1 採用順序儲存方式,需要預先分配空間,data ...

佇列的實現(一)順序佇列的實現

佇列 只能一端進行出棧一端進行進棧。隊首 只允許進行出棧操作,可以進行刪除。隊尾 只允許進行入棧操作,可以進行插入。隊尾進,隊尾出,先進先出。所以佇列的實現也有兩種形式,一種是陣列實現佇列,一種是用鍊錶實現佇列。首先是用陣列來實現佇列。使用陣列佇列,因為在刪除時front會越來越大,所以最後會出現一...