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...