#include <stdio.h> #include <stdlib.h> #include <string.h> // 定义队列的最大大小 #define MAX_SIZE 100000 // 定义队列结构 typedef struct { int data[MAX_SIZE]; int front; int rear; } Queue; // 初始化一个空队列 void initQueue(Queue* q) { q->front = 0; q->rear = 0; } // 检查队列是否为空 int isEmpty(Queue* q) { return q->front == q->rear; } // 检查队列是否已满 int isFull(Queue* q) { return (q->rear + 1) % MAX_SIZE == q->front; } // 将元素推入队列 void push(Queue* q, int x) { if (isFull(q)) { printf("error\n"); return; } q->data[q->rear] = x; q->rear = (q->rear + 1) % MAX_SIZE; } // 从队列中弹出元素 void pop(Queue* q) { if (isEmpty(q)) { printf("error\n"); return; } printf("%d\n", q->data[q->front]); q->front = (q->front + 1) % MAX_SIZE; } // 获取队首元素但不移除它 void front(Queue* q) { if (isEmpty(q)) { printf("error\n"); return; } printf("%d\n", q->data[q->front]); } int main() { int n; scanf("%d", &n); Queue q; initQueue(&q); for (int i = 0; i < n; ++i) { char op[10]; scanf("%s", op); if (strcmp(op, "push") == 0) { int x; scanf("%d", &x); push(&q, x); } else if (strcmp(op, "pop") == 0) { pop(&q); } else if (strcmp(op, "front") == 0) { front(&q); } } return 0; }