c语言定义队列的方法是什么

avatar
作者
筋斗云
阅读量:0

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

#include <stdio.h>  #define MAX_SIZE 100  struct Queue {   int items[MAX_SIZE];   int front;   int rear; };  struct Queue* createQueue() {   struct Queue* queue = (struct Queue*)malloc(sizeof(struct Queue));   queue->front = -1;   queue->rear = -1;   return queue; }  int isEmpty(struct Queue* queue) {   if (queue->rear == -1) {     return 1;   }   return 0; }  int isFull(struct Queue* queue) {   if (queue->rear == MAX_SIZE - 1) {     return 1;   }   return 0; }  void enqueue(struct Queue* queue, int value) {   if (isFull(queue)) {     printf("Queue is full\n");   } else {     if (isEmpty(queue)) {       queue->front = 0;     }     queue->rear++;     queue->items[queue->rear] = value;     printf("%d enqueued to queue\n", value);   } }  void dequeue(struct Queue* queue) {   if (isEmpty(queue)) {     printf("Queue is empty\n");   } else {     printf("%d dequeued from queue\n", queue->items[queue->front]);     queue->front++;     if (queue->front > queue->rear) {       queue->front = queue->rear = -1;     }   } }  int main() {   struct Queue* queue = createQueue();    enqueue(queue, 10);   enqueue(queue, 20);   enqueue(queue, 30);    dequeue(queue);   dequeue(queue);   dequeue(queue);   dequeue(queue);    return 0; } 

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

广告一刻

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