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

#define MAX_SIZE 5

typedef struct Queue {
    int data[MAX_SIZE];
    int front; // 队头指针
    int rear;  // 队尾指针
} Queue;

// 初始化队列
void initQueue(Queue *queue) {
    queue->front = queue->rear = 0;
}

// 判断队列是否为空
int isQueueEmpty(Queue *queue) {
    return queue->front == queue->rear;
}

// 判断队列是否已满
int isQueueFull(Queue *queue) {
    return (queue->rear + 1) % MAX_SIZE == queue->front;
}

// 入队
void enQueue(Queue *queue, int data) {
    if (isQueueFull(queue)) {
        printf('队列已满,无法入队!\n');
        return;
    }
    queue->data[queue->rear] = data;
    queue->rear = (queue->rear + 1) % MAX_SIZE;
}

// 出队
int deQueue(Queue *queue) {
    if (isQueueEmpty(queue)) {
        printf('队列已空,无法出队!\n');
        return -1;
    }
    int data = queue->data[queue->front];
    queue->front = (queue->front + 1) % MAX_SIZE;
    return data;
}

int main() {
    Queue queue;
    initQueue(&queue);

    int i, data;
    printf('请输入5个数字,以空格分隔:\n');
    for (i = 0; i < MAX_SIZE; i++) {
        scanf('%d', &data);
        enQueue(&queue, data);
    }

    printf('出队的元素依次为:');
    while (!isQueueEmpty(&queue)) {
        printf('%d ', deQueue(&queue));
    }
    printf('\n');

    return 0;
}
C语言实现队列操作:入队和出队

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

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