資料結構 順序佇列

2021-09-21 18:45:18 字數 1816 閱讀 6977

1) 佇列簡稱隊,它是一種操作受限的線性表,其限制為在標的一段進行插入,而在包的另一端進行刪除。把進行插入的一端稱為隊尾(rear),把進行刪除的一端稱作隊頭隊首(front)。向佇列中插入新元素稱為進隊入隊,新的元素進隊後就成為新的隊尾元素;從佇列中刪除元素稱為出隊離隊,元素出隊後,其直接後繼元素就成為隊首元素。

2)由於佇列的插入和刪除操作分別在各自的一端進行的,每個元素必然按照進隊的次序出隊,所以又把佇列稱為先進先出表

佇列的順序儲存結構需要使用乙個陣列和兩個整數型變數來實現。利用陣列順序儲存佇列中所有元素,利用兩個整型變數分別儲存隊首元素和隊尾元素下表位置,分別稱它為隊首指標和隊尾指標。

假設佇列的所有元素不超過整數 maxsize,所有元素都有具有同一資料類elemtype

,則順序佇列型別sqqueue定義如下:

typedef struct 

sqqueue; //定義順序隊型別

(1)初始化佇列 initqueue(q)。

構造乙個空佇列q。將front和rear指標均設定為初始狀態即-1。

void initqueue(sqqueue * &q)

(2)銷毀佇列 destoryqueue(q)。

釋放佇列q占用的儲存空間。

void destoryqueue(sqqueue * &q)

(3)判斷佇列是否為空 queueempty(q)。

若佇列q滿足q->front=q->rear條件,則返回true;否則返回false。

bool queueempty(sqqueue * &q)

(4)進佇列 enqueue(q,e)。

在棧不滿的情況下,現將隊尾指標rear自增1,然後將元素新增到該位置。

bool enqueue(sqqueue * &q,elemtype e)

(5)出佇列 dequeue(s,e)。

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

例題:

#include#includetypedef int elemtype;

#define maxsize 5

typedef struct

sqqueue; //定義順序隊型別

void initqueue(sqqueue * &q)

void destoryqueue(sqqueue * &q)

bool queueempty(sqqueue * &q)

bool enqueue(sqqueue * &q,elemtype e)//進佇列

資料結構順序佇列

佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。順序佇列 ifndef sqqueue h define sqqueue h incl...

資料結構 順序佇列

rear m時,假溢位解決方法 迴圈佇列 c 實現 include include using namespace std define ok 1 define error 1 define overflow 2 typedef int status typedef int qelemtype de...

資料結構之佇列 順序佇列

列的特點是 先到先辦 fifo first in first out 可將佇列形象地比作管道 模擬買火車票的佇列實現 include include define n 100 最大有多少個 define datatype char 定義資料型別,定義佇列,struct queue typedef s...