用c语言实现一个环形队列
时间: 2023-01-11 12:55:36 浏览: 178
环形队列是一种特殊的队列,它可以在队列满的情况下继续插入新的数据。在环形队列中,当队列的最后一个位置被占用时,下一个数据就会插入到队列的第一个位置。
下面是一个用 C 语言实现的环形队列的例子:
```
#define MAX_QUEUE_SIZE 100
typedef struct {
int data[MAX_QUEUE_SIZE];
int front;
int rear;
} Queue;
void init(Queue *q) {
q->front = 0;
q->rear = 0;
}
int isEmpty(Queue *q) {
return q->front == q->rear;
}
int isFull(Queue *q) {
return (q->rear + 1) % MAX_QUEUE_SIZE == q->front;
}
void enqueue(Queue *q, int value) {
if (!isFull(q)) {
q->data[q->rear] = value;
q->rear = (q->rear + 1) % MAX_QUEUE_SIZE;
}
}
int dequeue(Queue *q) {
if (!isEmpty(q)) {
int value = q->data[q->front];
q->front = (q->front + 1) % MAX_QUEUE_SIZE;
return value;
}
return -1;
}
```
在这个例子中,我们定义了一个名为 `Queue` 的结构体,其中包含了一个数组用于存储数据,以及两个变量 `front` 和 `rear` 分别用于记录队列的头和尾的位置。
我们还定义了一些函数用于操作环形队列,包括初始化队列、判断队列是否为空、判断队列是否已满、向队列中插入数据和从队列中取出数据。
在这个
阅读全文