#include #define QueueSize 100 typedef struct { int data[QueueSize]; int front; int rear; } SeqQueue; // 初始化队列 void initQueue(SeqQueue *queue) { queue->front = queue->rear = 0; // 队列头指针和队列尾指针都指向数组下标为 0 的位置 } // 判断队列是否为空 int queueEmpty(SeqQueue *queue) { if (queue->front == queue->rear) { return 1; // 队列为空 } else { return 0; // 队列不为空 } } // 判断队列是否已满 int queueFull(SeqQueue *queue) { if (queue->rear == QueueSize) { return 1; // 队列已满 } else { return 0; // 队列未满 } } // 入队 void enQueue(SeqQueue *queue, int x) { if (queueFull(queue)) { printf("Queue is full\n"); // 队列已满,无法插入新元素 return; } queue->data[queue->rear++] = x; // 将新元素插入到队列尾部,并将队列尾指针向后移动一个位置 } // 出队 int deQueue(SeqQueue *queue) { if (queueEmpty(queue)) { printf("Queue is empty\n"); // 队列为空,无法删除元素 return -1; } int x = queue->data[queue->front++]; // 取出队列头元素,并将队列头指针向后移动一个位置 return x; }