帮我写一个队列程序要求使用C语言
时间: 2024-05-04 19:15:27 浏览: 79
DOS系统下多任务列队处理C语言源程序.zip_C++
当然可以帮您写一个队列程序,这是一个非常基础的数据结构,可以用来存储一系列元素,并支持在队尾添加元素和在队头删除元素。以下是一个示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define QUEUE_SIZE 100
// 队列结构体
typedef struct {
int data[QUEUE_SIZE];
int front;
int rear;
} Queue;
// 初始化队列
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
// 判断队列是否为空
int isEmpty(Queue *q) {
return q->front == q->rear;
}
// 判断队列是否已满
int isFull(Queue *q) {
return q->rear == QUEUE_SIZE;
}
// 入队
int enqueue(Queue *q, int value) {
if (isFull(q)) {
return -1;
}
q->data[q->rear++] = value;
return 0;
}
// 出队
int dequeue(Queue *q, int *value) {
if (isEmpty(q)) {
return -1;
}
*value = q->data[q->front++];
return 0;
}
int main() {
Queue q;
int i, value;
initQueue(&q);
// 入队操作
for (i = 0; i < QUEUE_SIZE; i++) {
enqueue(&q, i);
}
// 出队操作
while (!isEmpty(&q)) {
dequeue(&q, &value);
printf("%d ", value);
}
return 0;
}
```
这个程序使用了一个名为 Queue 的结构体来表示队列,其中包含一个整数数组来存储队列中的元素,以及 front 和 rear 两个指针来指示队头和队尾的位置。队列的基本操作包括入队和出队,通过调用相应的函数实现。
阅读全文