以下是一个简单的循环队列的C语言实现:

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 5

typedef struct {
    int* data;
    int front;
    int rear;
    int size;
} Queue;

void initialize(Queue* queue) {
    queue->data = (int*)malloc(MAX_SIZE * sizeof(int));
    queue->front = -1;
    queue->rear = -1;
    queue->size = 0;
}

int isEmpty(Queue* queue) {
    return queue->size == 0;
}

int isFull(Queue* queue) {
    return queue->size == MAX_SIZE;
}

void enqueue(Queue* queue, int value) {
    if (isFull(queue)) {
        printf("Queue is full. Cannot enqueue.\n");
        return;
    }
    
    if (isEmpty(queue)) {
        queue->front = 0;
        queue->rear = 0;
    } else {
        queue->rear = (queue->rear + 1) % MAX_SIZE;
    }
    
    queue->data[queue->rear] = value;
    queue->size++;
}

int dequeue(Queue* queue) {
    if (isEmpty(queue)) {
        printf("Queue is empty. Cannot dequeue.\n");
        return -1;
    }
    
    int value = queue->data[queue->front];
    
    if (queue->front == queue->rear) {
        queue->front = -1;
        queue->rear = -1;
    } else {
        queue->front = (queue->front + 1) % MAX_SIZE;
    }
    
    queue->size--;
    
    return value;
}

void printQueue(Queue* queue) {
    if (isEmpty(queue)) {
        printf("Queue is empty.\n");
        return;
    }
    
    printf("Queue: ");
    
    int i = queue->front;
    while (i != queue->rear) {
        printf("%d ", queue->data[i]);
        i = (i + 1) % MAX_SIZE;
    }
    
    printf("%d\n", queue->data[i]);
}

int main() {
    Queue queue;
    initialize(&queue);
    
    enqueue(&queue, 10);
    enqueue(&queue, 20);
    enqueue(&queue, 30);
    
    printQueue(&queue);
    
    dequeue(&queue);
    
    printQueue(&queue);
    
    enqueue(&queue, 40);
    enqueue(&queue, 50);
    
    printQueue(&queue);
    
    enqueue(&queue, 60);
    
    dequeue(&queue);
    
    printQueue(&queue);
    
    return 0;
}

这段代码是由OpenAI的GPT模型生成的,模型通过学习大量的文本数据得到了对编程知识的理解,并且可以根据问题提供相应的代码实现

写一个简单的循环队列 c语言你实现的这个代码是从哪儿来的

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

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