嵌入式:写出队列中入队和出队的代码
时间: 2024-09-26 21:12:13 浏览: 24
嵌入式系统中的队列通常是一个数据结构,用于在程序中存储和管理元素。这里我们以C语言为例,使用简单的数组来实现一个固定大小的队列。假设队列的最大容量为`MAX_SIZE`。
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE]; // 队列元素
int front; // 队头指针
int rear; // 队尾指针
} Queue;
// 初始化队列
void initQueue(Queue* queue) {
queue->front = -1;
queue->rear = -1;
}
// 入队操作 (enqueue)
void enqueue(Queue* queue, int value) {
if ((queue->rear + 1) % MAX_SIZE == queue->front) { // 当队满时
printf("Queue is full.\n");
return;
}
queue->rear = (queue->rear + 1) % MAX_SIZE; // 后进先出原则,更新队尾
queue->data[queue->rear] = value;
if (queue->front == -1) queue->front = queue->rear; // 如果队列为空,同时更新队头
}
// 出队操作 (dequeue)
int dequeue(Queue* queue) {
if (queue->front == -1) { // 当队空时
printf("Queue is empty.\n");
return -1; // 返回错误码或特殊值表示队列为空
}
int value = queue->data[queue->front]; // 取出队首元素
queue->front = (queue->front + 1) % MAX_SIZE; // 更新队头
return value;
}
int main() {
Queue q;
initQueue(&q);
enqueue(&q, 1);
enqueue(&q, 2);
printf("Dequeued: %d\n", dequeue(&q)); // 输出:Dequeued: 1
return 0;
}
```
阅读全文