用C语言将队头元素塞到队尾的代码
时间: 2024-10-29 20:15:22 浏览: 5
C语言实现使用静态数组实现循环队列源码.zip
在C语言中,如果你有一个基于数组的简单循环队列,直接将队头元素添加到队尾可能会涉及到数据移动,因为队头和队尾不是固定位置。这里是一个简单的示例,假设我们有一个满载容量的`capacity`, 队列头指针`front`和队尾指针`rear`:
```c
#include <stdio.h>
#define MAX_CAPACITY 10
typedef struct {
int data[MAX_CAPACITY];
int front;
int rear;
} Queue;
// 添加元素到队尾
void enqueue(Queue *queue, int value) {
if ((queue->rear + 1) % MAX_CAPACITY == queue->front) { // 队满
printf("Queue is full.\n");
return;
}
queue->data[queue->rear] = value; // 将值存入队尾
queue->rear = (queue->rear + 1) % MAX_CAPACITY; // 更新队尾指针
}
// 示例用法
int main() {
Queue my_queue = { .front = 0, .rear = -1 }; // 初始化队列为空
enqueue(&my_queue, 5); // 添加元素
// 其他操作...
return 0;
}
```
在这个例子中,当队列已满时,`enqueue`函数会检测并报告错误。当队列不满时,新元素会被添加到当前的`rear`位置,并更新`rear`指针。
阅读全文