佇列的定義:佇列簡稱隊,它是一種運算受控的線性表,其限制為僅允許在標的一段進行插入,在表的另一端進行刪除。可進行插入的是隊尾,可進行刪除的是隊頭。向
佇列中插入元素稱為進隊,新元素進隊後稱為新的隊尾元素,從佇列中刪除元素稱為出隊,元素出隊後,其後繼元素成為新的隊頭元素。
佇列的特點:先進先出(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 向隊尾插入元...
資料結構 佇列的基本操作
佇列 簡稱隊,一種受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除操作 先進先出 隊頭 進行刪除的一端 隊尾 進行插入的一端 空佇列 不含任何元素的空表 佇列的基本操作 佇列分為順序佇列 迴圈佇列和鏈式佇列,順序佇列容易發生假溢位現象 隊尾超過限定長度 故不常用,下面是迴圈佇列和鏈式佇列...