循环队列求其中元素个数完整代码 c语言
时间: 2023-08-03 14:08:36 浏览: 168
以下是循环队列求其中元素个数的完整代码,使用了C语言实现:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_QUEUE_SIZE 10
// 定义循环队列结构体
typedef struct {
int front; // 队头指针
int rear; // 队尾指针
int count; // 元素个数
int data[MAX_QUEUE_SIZE]; // 存放元素的数组
} CircularQueue;
// 初始化循环队列
void initQueue(CircularQueue *queue) {
queue->front = 0;
queue->rear = 0;
queue->count = 0;
}
// 入队
int enqueue(CircularQueue *queue, int value) {
if (queue->count == MAX_QUEUE_SIZE) {
return -1; // 队列已满,无法入队
}
queue->data[queue->rear] = value;
queue->rear = (queue->rear + 1) % MAX_QUEUE_SIZE; // 计算下一个队尾指针位置
queue->count++; // 元素个数加1
return 0;
}
// 出队
int dequeue(CircularQueue *queue) {
if (queue->count == 0) {
return -1; // 队列为空,无法出队
}
int value = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_QUEUE_SIZE; // 计算下一个队头指针位置
queue->count--; // 元素个数减1
return value;
}
// 获取队列中元素个数
int getSize(CircularQueue *queue) {
return queue->count;
}
int main() {
CircularQueue queue;
initQueue(&queue); // 初始化队列
// 入队操作
enqueue(&queue, 1);
enqueue(&queue, 2);
enqueue(&queue, 3);
// 获取队列中元素个数
printf("queue size: %d\n", getSize(&queue));
// 出队操作
dequeue(&queue);
dequeue(&queue);
// 再次获取队列中元素个数
printf("queue size: %d\n", getSize(&queue));
return 0;
}
```
以上代码实现了循环队列的入队、出队以及获取队列中元素个数的操作。
阅读全文