資料結構C語言實現 迴圈佇列

2022-03-17 14:03:09 字數 1052 閱讀 8964

**如下:

#include#includetypedef char elemtype;

#define maxqueue 100

typedef struct

cyclequeue;

/////////////////////////////////

//建立乙個迴圈佇列

void initqueue(cyclequeue *q)

q->front = q->rear = 0;//初始換隊首隊尾位置為0

}/////////////////////////////////

//入迴圈佇列

void enqueue(cyclequeue *q , elemtype e)

q->base[q->rear] = e;

q->rear = (q->rear+1)%maxqueue;

}///////////////////////////////////

//出迴圈列表

void dequeue(cyclequeue *q , elemtype *e)

*e = q->base[q->front];

q->front = (q->front+1)%maxqueue;

}int main()

}printf("正在列印迴圈佇列...\n當前迴圈隊列為:");

for (size_t i = 0; i < q.rear; i++)

putchar('\n');

printf("請輸入要從隊頭出佇列幾個元素:");

int c;

scanf("%d",&c);

while (c)

printf("正在列印迴圈佇列...\n當前迴圈隊列為:");

for (size_t i = 0; i < q.rear; i++)

putchar('\n');

return 0;

}

執行結果:

資料結構 C語言實現迴圈佇列

迴圈佇列可以理解為乙個環,實際上是將乙個普通佇列的尾部連上頭部構成的,所以在實現迴圈佇列時,需要兩個指標front和rear分別指示佇列頭元素及佇列尾元素的位置。在初始化建空佇列時可以令front rear 0,這樣當插入新元素時,尾指標rear加1表示向後移動一位,同理,當刪除佇列頭元素時,頭指標...

資料結構之迴圈佇列(C語言實現)

具體程式實現如下 快取佇列長度 define cirqueue len 200 typedef unsigned char u8 typedef struct cirqueue 迴圈佇列 static cirqueue cirqueue 迴圈佇列初始化 void cqinit void 檢查佇列是否...

資料結構 佇列(C語言實現)

佇列 c語言實現 include include define queueisempty arg arg size 0 define queueisfull arg arg size arg capacity 判斷是否為空或為滿。巨集定義,函式調銷太大。佇列使用size和capacity顯式的判斷是...