队列的基本操作:
1.Enqueue:将元素插入队列尾部。
2.Dequeue:从队列头部移除元素。
3.Front:获取队列头部元素。
4.IsEmpty:检查队列是否为空。
5.IsFull:检查队列是否已满。
代码实现:
#include <stdio.h>#define MAX_SIZE 100// 定义队列结构
typedef struct {int data[MAX_SIZE];int front;int rear;
} Queue;// 初始化队列
void initQueue(Queue *queue) {queue->front = -1;queue->rear = -1;
}// 入队操作
void enqueue(Queue *queue, int value) {if ((queue->rear + 1) % MAX_SIZE == queue->front) {printf("满了.\n");return;}if (queue->front == -1) {queue->front = 0;}queue->rear = (queue->rear + 1) % MAX_SIZE;queue->data[queue->rear] = value;
}// 出队操作
int dequeue(Queue *queue) {if (queue->front == -1) {printf("空了\n");return -1; // 返回一个特定的错误值}int value = queue->data[queue->front];if (queue->front == queue->rear) {queue->front = -1;queue->rear = -1;} else {queue->front = (queue->front + 1) % MAX_SIZE;}return value;
}// 获取队列头部元素
int front(Queue *queue) {if (queue->front == -1) {printf("空了.\n");return -1; // 返回一个特定的错误值}return queue->data[queue->front];
}// 检查队列是否为空
int isEmpty(Queue *queue) {return queue->front == -1;
}// 检查队列是否已满
int isFull(Queue *queue) {return (queue->rear + 1) % MAX_SIZE == queue->front;
}int main() {Queue queue;initQueue(&queue);enqueue(&queue, 10);enqueue(&queue, 20);enqueue(&queue, 30);printf("Front element: %d\n", front(&queue));while (!isEmpty(&queue)) {printf("Dequeued element: %d\n", dequeue(&queue));}return 0;
}