酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

实现环形队列的各种基本运算的算法 目的:领会环形队列的存储结构和掌握环形队列中各种基本运算算法的设计。 内容:编写一个程序sqqueue.cpp,实现环形队列(假设栈中的元素类型 elemtype char)的各种基本运算,并在此基础上设计一个程序exp3-3.cpp完成以下功能。 (1)初始化队列q。 (2)判断队列q是否非空。(3)依次进队元素a、b、c。 (4)出队一个元素,输出该元素。(5)依次进队元素d、e、f。(6)输出出队序列。(7)释放队列。 用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中可以添加更多操作,如清空队列、获取队头元素、获取队列长度等。 [2024-07-21 14:24:16 | AI写代码神器 | 941点数解答]

相关提问