用c语言写循环队列的代码
以下是使用C语言编写循环队列的代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10
typedef struct {
int front; // 队首指针
int rear; // 队尾指针
int data[MAX_SIZE]; // 存储元素的数组
} Queue;
void init(Queue *q) {
q->front = q->rear = 0;
}
int is_empty(Queue *q) {
return q->front == q->rear;
}
int is_full(Queue *q) {
return (q->rear + 1) % MAX_SIZE == q->front;
}
int size(Queue *q) {
return (q->rear - q->front + MAX_SIZE) % MAX_SIZE;
}
void enqueue(Queue *q, int x) {
if (is_full(q)) {
printf("Queue is full!\n");
return;
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX_SIZE;
}
int dequeue(Queue *q) {
if (is_empty(q)) {
printf("Queue is empty!\n");
return -1;
}
int x = q->data[q->front];
q->front = (q->front + 1) % MAX_SIZE;
return x;
}
int main() {
Queue q;
init(&q);
enqueue(&q, 1);
enqueue(&q, 2);
enqueue(&q, 3);
printf("Size of queue: %d\n", size(&q));
printf("Dequeue element: %d\n", dequeue(&q));
printf("Dequeue element: %d\n", dequeue(&q));
printf("Size of queue: %d\n", size(&q));
enqueue(&q, 4);
enqueue(&q, 5);
enqueue(&q, 6);
printf("Size of queue: %d\n", size(&q));
printf("Dequeue element: %d\n", dequeue(&q));
printf("Dequeue element: %d\n", dequeue(&q));
printf("Dequeue element: %d\n", dequeue(&q));
printf("Size of queue: %d\n", size(&q));
return 0;
}
以上代码实现了一个循环队列,可以进行入队、出队、判断队列是否为空、判断队列是否已满以及获取队列大小的操作。
原文地址: https://www.cveoy.top/t/topic/b3tT 著作权归作者所有。请勿转载和采集!