循环队列的入队出队代码
时间: 2024-06-11 16:01:47 浏览: 92
队列 循环队列 入队 出队
4星 · 用户满意度95%
循环队列是一种线性结构,它可以充分利用数组的空间,实现高效的队列操作。循环队列的入队和出队操作是通过队头和队尾指针的移动来实现的。以下是循环队列的入队和出队代码示例:
```
// 循环队列结构体定义
typedef struct {
int* data; // 数据存储区
int front; // 队头指针
int rear; // 队尾指针
int size; // 队列容量
} CircularQueue;
// 初始化循环队列
void initCircularQueue(CircularQueue* queue, int size) {
queue->data = (int*)malloc(size * sizeof(int));
queue->front = queue->rear = 0;
queue->size = size;
}
// 入队操作
bool enqueue(CircularQueue* queue, int value) {
if ((queue->rear + 1) % queue->size == queue->front) {
return false; // 队列已满,插入失败
} else {
queue->data[queue->rear] = value;
queue->rear = (queue->rear + 1) % queue->size;
return true;
}
}
// 出队操作
bool dequeue(CircularQueue* queue, int* value) {
if (queue->front == queue->rear) {
return false; // 队列为空,弹出失败
} else {
*value = queue->data[queue->front];
queue->front = (queue->front + 1) % queue->size;
return true;
}
}
```
阅读全文