c语言列队如何简化实现

avatar
作者
筋斗云
阅读量:0

在C语言中,简化实现队列的数据结构可以使用数组。以下是一个使用数组实现队列的简单示例:

#include <stdio.h> #include <stdlib.h>  #define SIZE 5  typedef struct {     int data[SIZE];     int front;     int rear; } Queue;  Queue* createQueue() {     Queue* queue = (Queue*)malloc(sizeof(Queue));     if (queue == NULL) {         printf("Memory error\n");         exit(0);     }     queue->front = queue->size - 1;     queue->rear = -1;     return queue; }  int isFull(Queue* queue) {     return (queue->rear + 1) % SIZE == queue->front; }  int isEmpty(Queue* queue) {     return queue->front == -1; }  void enqueue(Queue* queue, int item) {     if (isFull(queue)) {         printf("Queue is full\n");         return;     }     queue->rear = (queue->rear + 1) % SIZE;     queue->data[queue->rear] = item; }  int dequeue(Queue* queue) {     if (isEmpty(queue)) {         printf("Queue is empty\n");         return -1;     }     int item = queue->data[queue->front];     queue->front = (queue->front + 1) % SIZE;     return item; }  int main() {     Queue* queue = createQueue();     enqueue(queue, 1);     enqueue(queue, 2);     enqueue(queue, 3);     enqueue(queue, 4);     enqueue(queue, 5);      while (!isEmpty(queue)) {         printf("%d ", dequeue(queue));     }      free(queue);     return 0; } 

这个示例中,我们定义了一个名为Queue的结构体,其中包含一个数组data来存储队列中的元素,以及两个整数变量frontrear分别表示队列的头部和尾部。接下来,我们实现了一些基本的队列操作,如创建队列、判断队列是否已满、判断队列是否为空、入队(enqueue)和出队(dequeue)。

main函数中,我们创建了一个队列,并向其中添加了一些元素。然后,我们使用一个循环将队列中的所有元素依次出队并打印出来。最后,我们释放了分配给队列的内存。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!