队列的基本操作:
1.Enqueue:将元素插入队列尾部。
2.Dequeue:从队列头部移除元素。
3.Front:获取队列头部元素。
4.IsEmpty:检查队列是否为空。
5.IsFull:检查队列是否已满。
代码实现:
#include
#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;
}