以下是使用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;
}

以上代码实现了一个循环队列,可以进行入队、出队、判断队列是否为空、判断队列是否已满以及获取队列大小的操作。

用c语言写循环队列的代码

原文地址: https://www.cveoy.top/t/topic/b3tT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录