阅读量: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
函数用于判断队列是否已满。通过调用这些函数,我们可以对队列进行操作。