酷代码 AI
菜单
服务商

C语言实现环形队列基本运算:含入队出队等操作及拓展功能

```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中可以添加更多操作,如清空队列、获取队头元素、获取队列长度等。 ######[AI写代码神器 | 941点数解答 | 2024-07-21 14:24:16]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]