資料結構 佇列的操作

2021-08-15 02:41:58 字數 1822 閱讀 2717

佇列的定義:佇列簡稱隊,它是一種運算受控的線性表,其限制為僅允許在標的一段進行插入,在表的另一端進行刪除。可進行插入的是隊尾,可進行刪除的是隊頭

佇列中插入元素稱為進隊,新元素進隊後稱為新的隊尾元素,從佇列中刪除元素稱為出隊,元素出隊後,其後繼元素成為新的隊頭元素。

佇列的特點:先進先出(fifo

佇列的儲存結構:順序隊鏈隊

一,順序隊

佇列的順序儲存結構表示:

#define maxsize 100 //佇列可能達到的最大長度

typedef struct

sqqueue;

1,迴圈佇列的初始化

迴圈佇列的初始化操作就是動態分配乙個大小為maxsize的陣列空間

①為佇列分配乙個最大容量為maxsize的陣列空間,base指向陣列空間的首位址

②頭指標和尾指標置零,表示隊列為空

【演算法描述】

status initqueue(sqqueue &q)

2,求迴圈佇列的長度

【演算法描述】

int queuelength(sqqueue q)

3,入隊

【演算法描述】

status enqueu(sqqueue &q,qelemtype)

4,出隊

【演算法描述】

status dequeu(sqqueue &q,qelemtype)

5,取迴圈佇列的隊頭元素

selemtype gethead(squeue q)

二,迴圈佇列的實現

#include#include#define maxsize 50  

typedef struct sqqueuesqqueue;

//建立迴圈佇列

sqqueue initqueue()

//判斷迴圈佇列是否為空

int isempty(sqqueue qu)

//元素進迴圈佇列

int enqueue(sqqueue *qu,int x)

qu->rear=(qu->rear+1)%maxsize;

qu->data[qu->rear]=x;

return 1;

} //元素出迴圈佇列

int dequeue(sqqueue *qu,int *y)

*y=qu->data[qu->front];

qu->front=(qu->front+1)%maxsize;

return 1;

} //列印迴圈佇列

資料結構 佇列的操作

queue的實現 就像stack類的實現所做的一樣,queue類的實現用arraylist簡直是毋庸置疑的。對於這些資料結構型別而言,由於他們都是動態內建的結構,所以arraylist是極好的實現選擇。當需要往佇列中插入資料項時,arraylist會在表中把每乙個保留的資料項向前移動乙個元素。cla...

資料結構佇列的基本操作

include include 鍊錶 佇列的鏈式儲存結構 typedef struct queuenode qnode,queueptr 指向佇列頭和尾的指標結構體 typedef struct queue int main 構造乙個空佇列 void initqueue queue q 向隊尾插入元...

資料結構 佇列的基本操作

佇列 簡稱隊,一種受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除操作 先進先出 隊頭 進行刪除的一端 隊尾 進行插入的一端 空佇列 不含任何元素的空表 佇列的基本操作 佇列分為順序佇列 迴圈佇列和鏈式佇列,順序佇列容易發生假溢位現象 隊尾超過限定長度 故不常用,下面是迴圈佇列和鏈式佇列...