对于环形队列来说,已知队尾指针和队列中元素个数,给出该环形队列的类型声明,并设计出这种环形队列的初始化、入队、出队和判空算法。用C语言。
时间: 2024-05-05 17:15:16 浏览: 76
c语言实现队列的建立,入队,出队
5星 · 资源好评率100%
环形队列的类型声明:
```c
#define MAX_QUEUE_SIZE 100 // 队列最大长度
typedef struct {
int data[MAX_QUEUE_SIZE]; // 存储队列元素的数组
int front; // 队头指针
int rear; // 队尾指针
int count; // 队列中元素个数
} CircularQueue;
```
环形队列的初始化:
```c
void initCircularQueue(CircularQueue *queue) {
queue->front = 0;
queue->rear = 0;
queue->count = 0;
}
```
环形队列的入队:
```c
void enqueue(CircularQueue *queue, int data) {
if (queue->count < MAX_QUEUE_SIZE) { // 队列未满
queue->data[queue->rear] = data;
queue->rear = (queue->rear + 1) % MAX_QUEUE_SIZE; // 队尾指针移动
queue->count++;
}
}
```
环形队列的出队:
```c
int dequeue(CircularQueue *queue) {
int data = -1; // 出队元素的默认值为-1(队列中可能存储正整数)
if (queue->count > 0) { // 队列非空
data = queue->data[queue->front];
queue->front = (queue->front + 1) % MAX_QUEUE_SIZE; // 队头指针移动
queue->count--;
}
return data;
}
```
环形队列的判空:
```c
bool isEmpty(CircularQueue *queue) {
return queue->count == 0;
}
```
阅读全文