#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100000 // 修改队列的最大容量 struct node { int data[MAX_SIZE]; int front; int rear; }; typedef struct node* queue; void push(queue ptrs, int item) { if ((ptrs->rear + 1) % MAX_SIZE == ptrs->front) { printf("error\n"); // 队列已满,无法入队 return; } ptrs->rear = (ptrs->rear + 1) % MAX_SIZE; ptrs->data[ptrs->rear] = item; } int pop(queue ptrs) { if (ptrs->front == ptrs->rear) { printf("error\n"); // 队列为空,无法出队 return -1; } ptrs->front = (ptrs->front + 1) % MAX_SIZE; return ptrs->data[ptrs->front]; } void front(queue ptrs) { if (ptrs->front == ptrs->rear) { printf("error\n"); // 队列为空,无法获取头元素 return; } printf("%d\n", ptrs->data[(ptrs->front + 1) % MAX_SIZE]); } int main() { queue ptrs = (queue)malloc(sizeof(struct node)); ptrs->front = 0; ptrs->rear = 0; int n; scanf("%d", &n); char operation[10]; int value; while (n--) { scanf("%s", operation); if (strcmp(operation, "push") == 0) { scanf("%d", &value); push(ptrs, value); } else if (strcmp(operation, "pop") == 0) { int result = pop(ptrs); if (result != -1) { printf("%d\n", result); } } else if (strcmp(operation, "front") == 0) { front(ptrs); } } free(ptrs); return 0; }