#include <stdio.h>
#define MAXSIZE 5

typedef struct queue {
    int data[MAXSIZE];
    int front, rear;
} Queue;

int isFull(Queue *q) {
    return (q->rear + 1) % MAXSIZE == q->front;
}

int isEmpty(Queue *q) {
    return q->front == q->rear;
}

void enqueue(Queue *q, int x) {
    if (isFull(q)) {
        printf('Queue is full.\n');
        return;
    }
    q->data[q->rear] = x;
    q->rear = (q->rear + 1) % MAXSIZE;
}

int dequeue(Queue *q) {
    if (isEmpty(q)) {
        printf('Queue is empty.\n');
        return -1;
    }
    int x = q->data[q->front];
    q->front = (q->front + 1) % MAXSIZE;
    return x;
}

int main() {
    Queue q = {0};
    int i, x;
    for (i = 0; i < MAXSIZE; i++) {
        scanf('%d', &x);
        enqueue(&q, x);
    }
    for (i = 0; i < MAXSIZE; i++) {
        printf('%d ', dequeue(&q));
    }
    printf('\n');
    return 0;
}
C语言实现队列入队出队操作:5个数顺序入队并输出

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

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