c语言编写完整代码输出循环队列中的元素个数
时间: 2024-01-28 08:04:04 浏览: 61
C语言实现循环队列代码
下面是一个使用 C 语言实现循环队列并输出其元素个数的完整代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 5
typedef struct {
int front;
int rear;
int data[MAX_SIZE];
} CircularQueue;
CircularQueue* createCircularQueue() {
CircularQueue* q = (CircularQueue*) malloc(sizeof(CircularQueue));
q->front = 0;
q->rear = 0;
return q;
}
void enqueue(CircularQueue* q, int x) {
if ((q->rear + 1) % MAX_SIZE == q->front) {
printf("Error: Queue is full\n");
} else {
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX_SIZE;
}
}
int dequeue(CircularQueue* q) {
if (q->front == q->rear) {
printf("Error: Queue is empty\n");
return -1;
} else {
int x = q->data[q->front];
q->front = (q->front + 1) % MAX_SIZE;
return x;
}
}
int size(CircularQueue* q) {
return (q->rear - q->front + MAX_SIZE) % MAX_SIZE;
}
int main() {
CircularQueue* q = createCircularQueue();
enqueue(q, 1);
enqueue(q, 2);
enqueue(q, 3);
dequeue(q);
enqueue(q, 4);
printf("The size of the queue is: %d\n", size(q));
free(q);
return 0;
}
```
输出结果为:
```
The size of the queue is: 3
```
在该代码中,我们定义了一个循环队列结构体 `CircularQueue`,包含队头下标 `front`、队尾下标 `rear` 和一个数组 `data`,表示存储队列元素的数据。我们使用 `createCircularQueue` 函数创建了一个新的循环队列,并使用 `enqueue` 和 `dequeue` 分别实现入队和出队操作,`size` 函数用于计算队列中的元素个数。在主函数中,我们创建了一个循环队列 `q`,向队列中添加了三个元素,然后删除了一个元素,再添加一个元素。最后,输出队列中的元素个数。
阅读全文