C语言标准库中并没有直接提供队列(Queue)的实现。然而,你可以使用数组、链表或其他数据结构来实现队列的基本操作,如入队(enqueue)、出队(dequeue)等。
以下是一个使用链表实现队列的简单例子:
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
typedef struct Queue {
Node* front;
Node* rear;
} Queue;
Queue* createQueue() {
Queue* q = (Queue*)malloc(sizeof(Queue));
q->front = q->rear = NULL;
return q;
}
void enqueue(Queue* q, int value) {
Node* temp = (Node*)malloc(sizeof(Node));
temp->data = value;
temp->next = NULL;
if (q->rear == NULL) {
q->front = q->rear = temp;
return;
}
q->rear->next = temp;
q->rear = temp;
}
int dequeue(Queue* q) {
if (q->front == NULL)
return -1;
Node* temp = q->front;
int value = temp->data;
q->front = q->front->next;
if (q->front == NULL)
q->rear = NULL;
free(temp);
return value;
}
int main() {
Queue* q = createQueue();
enqueue(q, 10);
enqueue(q, 20);
printf("%d\n", dequeue(q));
printf("%d\n", dequeue(q));
return 0;
}
在这个例子中,我们定义了一个队列结构,它包含两个指针:一个指向队列的前端(front),一个指向队列的后端(rear)。我们还定义了两个函数:enqueue
用于在队列的后端添加元素,dequeue
用于从队列的前端移除元素。
领取专属 10元无门槛券
手把手带您无忧上云