循环队列的出队入队c语言
时间: 2024-04-14 22:22:56 浏览: 102
循环队列是一种基于数组实现的队列,它可以充分利用数组空间,实现高效的入队和出队操作。在C语言中,可以通过以下方式实现循环队列的入队和出队操作:
1. 定义循环队列的结构体:
```c
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE];
int front; // 队头指针
int rear; // 队尾指针
} CircularQueue;
```
2. 初始化循环队列:
```c
void initQueue(CircularQueue *queue) {
queue->front = 0;
queue->rear = 0;
}
```
3. 判断队列是否为空:
```c
int isEmpty(CircularQueue *queue) {
return queue->front == queue->rear;
}
```
4. 判断队列是否已满:
```c
int isFull(CircularQueue *queue) {
return (queue->rear + 1) % MAX_SIZE == queue->front;
}
```
5. 入队操作:
```c
void enqueue(CircularQueue *queue, int item) {
if (isFull(queue)) {
printf("Queue is full.\n");
return;
}
queue->data[queue->rear] = item;
queue->rear = (queue->rear + 1) % MAX_SIZE;
}
```
6. 出队操作:
```c
int dequeue(CircularQueue *queue) {
if (isEmpty(queue)) {
printf("Queue is empty.\n");
return -1; // 返回一个特殊值表示出错
}
int item = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_SIZE;
return item;
}
```
阅读全文