用C语言实现一个嵌入式平台的高效循环队列
时间: 2023-05-20 19:01:22 浏览: 123
循环队列的学习解析以及C语言实现.doc
好的,我可以回答这个问题。以下是一个用C语言实现的嵌入式平台的高效循环队列的示例代码:
```c
#define QUEUE_SIZE 10
typedef struct {
int data[QUEUE_SIZE];
int front;
int rear;
} Queue;
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
int isQueueEmpty(Queue *q) {
return q->front == q->rear;
}
int isQueueFull(Queue *q) {
return (q->rear + 1) % QUEUE_SIZE == q->front;
}
int enQueue(Queue *q, int value) {
if (isQueueFull(q)) {
return 0;
}
q->data[q->rear] = value;
q->rear = (q->rear + 1) % QUEUE_SIZE;
return 1;
}
int deQueue(Queue *q, int *value) {
if (isQueueEmpty(q)) {
return 0;
}
*value = q->data[q->front];
q->front = (q->front + 1) % QUEUE_SIZE;
return 1;
}
```
这个循环队列使用了一个数组来存储数据,同时使用了两个指针来标记队列的头和尾。当队列满时,尾指针会指向数组的第一个位置,头指针会指向数组的最后一个位置,从而实现循环。
阅读全文