给出循环队列的代码例子,c语言
时间: 2023-09-03 10:12:01 浏览: 78
好的,以下是一个简单的循环队列代码示例,使用 C 语言编写:
```c
#include <stdio.h>
#include <stdlib.h>
#define QUEUE_SIZE 10
typedef struct {
int *base;
int front;
int rear;
} Queue;
int initQueue(Queue *q) {
q->base = (int *)malloc(QUEUE_SIZE * sizeof(int));
if (!q->base) {
return 0;
}
q->front = q->rear = 0;
return 1;
}
int isEmpty(Queue *q) {
return q->front == q->rear;
}
int isFull(Queue *q) {
return (q->rear + 1) % QUEUE_SIZE == q->front;
}
int enQueue(Queue *q, int value) {
if (isFull(q)) {
return 0;
}
q->base[q->rear] = value;
q->rear = (q->rear + 1) % QUEUE_SIZE;
return 1;
}
int deQueue(Queue *q, int *value) {
if (isEmpty(q)) {
return 0;
}
*value = q->base[q->front];
q->front = (q->front + 1) % QUEUE_SIZE;
return 1;
}
int main() {
Queue q;
int i, value;
if (!initQueue(&q)) {
printf("初始化队列失败!\n");
return 1;
}
for (i = 1; i <= 11; i++) {
if (!enQueue(&q, i)) {
printf("入队失败,队列已满!\n");
break;
}
}
while (!isEmpty(&q)) {
deQueue(&q, &value);
printf("%d ", value);
}
free(q.base);
return 0;
}
```
希望对你有所帮助!
阅读全文