C语言实现队列操作:处理入队出队并避免非法操作
```c #include <stdio.h> #include <stdlib.h> // 定义队列结构体 typedef struct Queue { int *data; int front, rear, size, capacity; } Queue; // 创建队列 Queue *createQueue(int capacity) { Queue *queue = (Queue *)malloc(sizeof(Queue)); queue->data = (int *)malloc(capacity * sizeof(int)); queue->front = 0; queue->rear = -1; queue->size = 0; queue->capacity = capacity; return queue; } // 判断队列是否为空 int isEmpty(Queue *queue) { return queue->size == 0; } // 判断队列是否已满 int isFull(Queue *queue) { return queue->size == queue->capacity; } // 入队操作 void enqueue(Queue *queue, int item) { if (isFull(queue)) { printf("Queue is full!\n"); return; } queue->rear = (queue->rear + 1) % queue->capacity; queue->data[queue->rear] = item; queue->size++; } // 出队操作 int dequeue(Queue *queue) { if (isEmpty(queue)) { printf("invalid\n"); return -1; } int item = queue->data[queue->front]; queue->front = (queue->front + 1) % queue->capacity; queue->size--; return item; } int main() { int n; scanf("%d", &n); Queue *queue = createQueue(20000); for (int i = 0; i < n; i++) { int op, num; scanf("%d", &op); if (op == 1) { scanf("%d", &num); enqueue(queue, num); } else { dequeue(queue); } } free(queue->data); free(queue); return 0; } ``` 额外需要注意的逻辑点: 1. 注意队列容量的限制,防止入队时超出容量。 2. 出队时要先判断队列是否为空,避免非法操作。 3. 对队列的操作要注意循环利用存储空间,通过取模运算实现。 ######[AI写代码神器 | 567点数解答 | 2024-11-27 14:03:38]
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)105
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)110
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)382
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)489
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)291
- C语言实现:屏幕菜单操控队列初始化、入队出队等全功能操作(字节豆包 | 934点数解答 | 2024-10-20 17:08:19)85
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)21
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)280
- 揭秘!十进制整数转其他进制用啥存储结构最合适?答案竟是它!(字节豆包 | 57点数解答 | 2024-11-13 01:21:11)258
- Java 实现仿 Windows 资源管理器:文件管理器功能全解析与代码示例(字节豆包 | 623点数解答 | 2025-01-01 14:59:04)271
- 用队列操作算法模拟周末舞会舞伴配对问题及代码实现(DeepSeek | 601点数解答 | 2025-05-18 11:27:45)194
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)352