学堂 学堂 学堂公众号手机端

在C语言中,可以通过使用数组或链表来定义队列

lewis 1年前 (2024-03-18) 阅读数 4 #技术

在C语言中,可以通过使用数组或链表来定义队列。以下是使用数组定义队列的示例:

#include<stdio.h> #defineMAX_SIZE100 structQueue{ intitems[MAX_SIZE]; intfront; intrear; }; structQueue*createQueue(){ structQueue*queue=(structQueue*)malloc(sizeof(structQueue)); queue->front=-1; queue->rear=-1; returnqueue; } intisEmpty(structQueue*queue){ if(queue->rear==-1){ return1; } return0; } intisFull(structQueue*queue){ if(queue->rear==MAX_SIZE-1){ return1; } return0; } voidenqueue(structQueue*queue,intvalue){ if(isFull(queue)){ printf("Queueisfull\n"); }else{ if(isEmpty(queue)){ queue->front=0; } queue->rear++; queue->items[queue->rear]=value; printf("%denqueuedtoqueue\n",value); } } voiddequeue(structQueue*queue){ if(isEmpty(queue)){ printf("Queueisempty\n"); }else{ printf("%ddequeuedfromqueue\n",queue->items[queue->front]); queue->front++; if(queue->front>queue->rear){ queue->front=queue->rear=-1; } } } intmain(){ structQueue*queue=createQueue(); enqueue(queue,10); enqueue(queue,20); enqueue(queue,30); dequeue(queue); dequeue(queue); dequeue(queue); dequeue(queue); return0; }

在上面的示例中,我们使用结构体定义了一个队列,并实现了对队列的入队和出队操作。我们还定义了一个createQueue函数用于创建一个队列,isEmpty函数用于判断队列是否为空,isFull函数用于判断队列是否已满。通过调用这些函数,我们可以对队列进行操作。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门