```c #include <stdio.h> #include <stdlib.h> #define MAXSIZE 5 typedef char elemtype; typedef struct { elemtype data[MAXSIZE]; int front; // 队头指针 int rear; // 队尾指针 } SqQueue; // 初始化队列 void initQueue(SqQueue *q) { q->front = 0; q->rear = 0; } // 队列是否为空 int isEmpty(SqQueue q) { return q.front == q.rear; } // 队列是否已满 int isFull(SqQueue q) { return (q.rear + 1) % MAXSIZE == q.front; } // 入队 void enqueue(SqQueue *q, elemtype e) { if (isFull(*q)) { printf("Queue is full\n"); return; } q->data[q->rear] = e; q->rear = (q->rear + 1) % MAXSIZE; } // 出队 void dequeue(SqQueue *q, elemtype *e) { if (isEmpty(*q)) { printf("Queue is empty\n"); return; } *e = q->data[q->front]; q->front = (q->front + 1) % MAXSIZE; } int main() { SqQueue q; initQueue(&q); if (isEmpty(q)) { printf("Queue is empty\n"); } enqueue(&q, 'a'); enqueue(&q, 'b'); enqueue(&q, 'c'); elemtype e; dequeue(&q, &e); printf("Dequeued element: %c\n", e); enqueue(&q, 'd'); enqueue(&q, 'e'); enqueue(&q, 'f'); printf("Dequeue sequence: "); while (!isEmpty(q)) { dequeue(&q, &e); printf("%c ", e); } printf("\n"); return 0; } ``` exp3-3.cpp中可以添加更多操作,如清空队列、获取队头元素、获取队列长度等。 [2024-07-21 14:24:16 | AI写代码神器 | 941点数解答]