用c 編寫的資料結構迴圈佇列

2021-05-25 20:44:19 字數 592 閱讀 4722

已經在vc上除錯過了

#include

#include

#include

#define datatype1 int

#define maxsize 5

typedef struct

seqqueue;

//初始化佇列

void initqueue(seqqueue *q)

//判佇列空函式

int empty(seqqueue *q)

//取隊頭元素

datatype1 getfront(seqqueue *q,datatype1 v)

else

v=q->data[(q->front+1)%maxsize];

return v;

}//隊尾插入元素

int enqueue(seqqueue *q,datatype1 x)

else

return r;

}//隊頭刪除元素

datatype1 dequeue(seqqueue *q)

else

return v;

}void main()

}

資料結構 佇列 迴圈佇列

在佇列的陣列實現中,我們很容易發現數在出隊後,陣列的前面部分會有剩餘空間沒有被使用,所以我們為了最大程度的利用固定長度的陣列,我們採用迴圈佇列的儲存方式,這種方式的最大問題在於resize的時候比較麻煩,所以我們不考慮resize的情況。基本結構如下,這裡front指向第乙個元素的位置,rear指向...

資料結構 佇列 迴圈佇列

資料結構 佇列 迴圈佇列 順序儲存 犧牲乙個空間單元來判段佇列滿狀態。q.front q.rear 1 initsize date 2017 4 16 include define elemtype char define initsize 100 typedef structsqqueue voi...

資料結構 迴圈佇列 C語言

2 迴圈佇列源 及測試 佇列,顧名思義就像我們平時排隊打飯一樣,隊尾有人不斷來排隊打飯,隊頭不斷有人打完飯離開隊頭 順序佇列用順序儲存結構,即陣列儲存,分別包含倆個變數front和rear分別代表隊頭和隊尾,為了防止陣列越界溢位,我們將順序佇列變成乙個環狀的空間,即迴圈佇列,超出陣列界隊尾重新回到陣...