自己设计一段C语言代码,要求实现队列的基本操作。
时间: 2024-10-27 21:08:27 浏览: 23
链队列实现的源代码
当然可以,这里是一个简单的C语言代码段,它实现了队列的两个基本操作:入队(enqueue)和出队(dequeue)。在这个例子中,我们使用数组作为底层数据结构。
```c
#include <stdio.h>
#define MAX_SIZE 10
// 队列结构体
typedef struct {
int data[MAX_SIZE];
int front; // 队头指针
int rear; // 队尾指针
} Queue;
// 初始化队列
void initQueue(Queue *q) {
q->front = -1;
q->rear = -1;
}
// 判断队列是否为空
int isQueueEmpty(Queue *q) {
return (q->front == -1);
}
// 判断队列是否已满
int isQueueFull(Queue *q) {
return ((q->rear + 1) % MAX_SIZE == q->front);
}
// 入队操作
void enqueue(Queue *q, int value) {
if (isQueueFull(q)) {
printf("Queue is full.\n");
} else {
if (q->front == -1)
q->front = 0;
q->rear = (q->rear + 1) % MAX_SIZE;
q->data[q->rear] = value;
printf("Inserted %d at rear of the queue.\n", value);
}
}
// 出队操作
int dequeue(Queue *q) {
if (isQueueEmpty(q)) {
printf("Queue is empty.\n");
} else {
int removedValue = q->data[q->front];
q->front = (q->front + 1) % MAX_SIZE;
if (q-1;
printf("Removed %d from the front of the queue.\n", removedValue);
return removedValue;
}
}
// 主函数演示队列操作
int main() {
Queue q;
initQueue(&q);
enqueue(&q, 1);
enqueue(&q, 2);
enqueue(&q, 3);
dequeue(&q);
dequeue(&q);
return 0;
}
```
这个代码首先定义了一个队列结构,包含了队头和队尾指针,以及一个数组来存储元素。然后实现了初始化、判断空/满队列、入队和出队的操作。在`main`函数中,展示了如何创建队列并进行基本操作。
阅读全文