/*
迴圈佇列 順序儲存結構
*/#include #include #define error -1
#define ok 0
typedef int elemtype;
typedef struct ringqueue
ringqueue;
int initringqueue(ringqueue *rq,int rq_size)
rq->front = 0;
rq->rear = 0;
rq->rq_size = rq_size;
return ok;
}int inrqueue(ringqueue *rq, elemtype data)
rq->base[rq->rear] = data;
rq->rear = (rq->rear + 1) % rq->rq_size;
return ok;
}int outrqueue(ringqueue *rq, elemtype *data)
*data = rq->base[rq->front];
rq->front = (rq->front + 1) % rq->rq_size;
return ok;
}int main()
for (int i =0;i<=10;i++)
return 0;
}
rear指向的是下一次可以存放值的地方。。。。。
當一直inrqueue不out時 rear指標指向最後乙個節點位置,再inrqueue 時 就認為隊滿了 其實這個時候最後乙個節點還沒有存放資料
資料結構 佇列 迴圈佇列
在佇列的陣列實現中,我們很容易發現數在出隊後,陣列的前面部分會有剩餘空間沒有被使用,所以我們為了最大程度的利用固定長度的陣列,我們採用迴圈佇列的儲存方式,這種方式的最大問題在於resize的時候比較麻煩,所以我們不考慮resize的情況。基本結構如下,這裡front指向第乙個元素的位置,rear指向...
資料結構 佇列 迴圈佇列
資料結構 佇列 迴圈佇列 順序儲存 犧牲乙個空間單元來判段佇列滿狀態。q.front q.rear 1 initsize date 2017 4 16 include define elemtype char define initsize 100 typedef structsqqueue voi...
資料結構 迴圈佇列
所謂順序儲存結構就是用一組位址連續的儲存單元依次存放從隊頭到隊尾的元素。宣告兩個指標rear front分別用來指示隊尾元素的下一位置和隊頭元素的位置。初始化時rear front 0 插入新的元素時尾指標加1,元素出佇列時隊頭指標加1。不過這樣做有個問題,不論是入隊還是出隊,隊頭或隊尾指標都是加1...