C 语言实现循环队列:处理进队出队操作并输出结果
以下是用 C 语言实现的代码: ```c #include <stdio.h> // 定义队列的最大长度 #define MAX_SIZE 10 // 定义队列结构体 typedef struct { int front; // 队头指针 int rear; // 队尾指针 int data[MAX_SIZE]; // 存储队列元素的数组 } 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 enQueue(Queue *q, int element) { if (isFull(q)) { printf("full "); return; } q->data[q->rear] = element; q->rear = (q->rear + 1) % MAX_SIZE; } // 出队操作 int deQueue(Queue *q) { if (isEmpty(q)) { printf("empty "); return -1; } int element = q->data[q->front]; q->front = (q->front + 1) % MAX_SIZE; return element; } int main() { Queue q; initQueue(&q); int n, element; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &element); if (element!= 0) { enQueue(&q, element); } else { deQueue(&q); } } // 输出出队元素 Queue tempQ; initQueue(&tempQ); while (!isEmpty(&q)) { int outElement = deQueue(&q); printf("%d ", outElement); enQueue(&tempQ, outElement); } printf("\n"); // 恢复队列原来的顺序 while (!isEmpty(&tempQ)) { enQueue(&q, deQueue(&tempQ)); } // 输出队列中的元素 for (int i = q.front; i!= q.rear; i = (i + 1) % MAX_SIZE) { printf("%d ", q.data[i]); } printf("\n"); return 0; } ``` 额外需要注意的逻辑点: 1. 注意循环队列中指针的移动和边界处理,避免越界。 2. 对于进队和出队操作,要确保在相应条件不满足时正确输出提示信息。 3. 处理好输入数据的读取和异常情况的处理。 ######[AI写代码神器 | 681点数解答 | 2024-11-23 22:05:28]
- 易语言子程序 TriggerCode 代码详解:通配符查找与结果运算(字节豆包 | 607点数解答 | 2026-02-09 11:59:34)35
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)70
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)70
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)457
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)354
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)459
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)264
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)5
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)260
- 揭秘!十进制整数转其他进制用啥存储结构最合适?答案竟是它!(字节豆包 | 57点数解答 | 2024-11-13 01:21:11)233