採用順序儲存方式,儲存容量要比邏輯上的容量多乙個,以此方便判斷隊空還是隊滿。採用尾進頭出的模式,來達到先進先出的目的。操作簡單描述如下:
隊尾指標是rear,隊頭是front,其中queuesize為迴圈佇列的最大長度。1.隊空條件:rear==front。
2.隊滿條件:(rear+1) %queuesize==front。
3.計算佇列長度:(rear-front+queuesize)%queuesize。
4.入隊:(rear+1)%queuesize。
5.出隊:(front+1)%queuesize。
c語言實現:
typedef struct queuequeue,*pqueue;
void initqueue(pqueue x,int size)
int* getremainder(int *x,int *head,int size)//指標的取餘操作
int judgeempty(pqueue x)
int judgefilled(pqueue x)
int inqueue(pqueue x,int in)
*x->rear=
in; x->rear=getremainder(x->rear+
1,x->head,x->queuesize);
return0;}
int outqueue(pqueue x)
x->front=getremainder(x->front+
1,x->head,x->queuesize);
return0;}
int getelem(pqueue x,int i)
return
*getremainder(x->front+i,x->head,x->queuesize);
}
資料結構 迴圈佇列的實現
介面 package com.company.queue queue 佇列介面 author heng public inte ce queue實現類 package com.company.queue loopqueue 迴圈佇列的實現 迴圈佇列需要從底層寫起 不再用array類了 author ...
資料結構 佇列 迴圈佇列 陣列實現
佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 tail 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。以陣列實現的佇列結構,如果是普通佇列,頻繁增刪元素,會造成陣列記憶體空間的大量流失,所...
資料結構的C實現 迴圈佇列
迴圈佇列 include include define ok 1 define error 0 define overflow 2 define maxsize 10 迴圈佇列的最大元素數量 typedef char elemtype 元素型別 typedef struct queue queue ...