根据以上要求 写一个C语言程序并设计主程序验证
时间: 2024-11-10 08:13:28 浏览: 13
为了满足上述的要求,我们首先需要声明数组 `a[]`、定义队尾 `rear` 和队列长度 `length` 变量。然后我们将编写入队、出队和检查队满的方法。最后,在主程序中演示这些功能。
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE];
int rear;
int length;
} Queue;
// 入队函数
void enqueue(Queue *q, int item) {
if (q->length == MAX_SIZE - 1) {
printf("Queue is full.\n");
return;
}
q->data[q->rear] = item;
q->rear = (q->rear + 1) % MAX_SIZE; // 循环处理
q->length++;
}
// 出队函数
int dequeue(Queue *q) {
if (q->length == 0) {
printf("Queue is empty.\n");
return -1; // 或者抛出错误
}
int item = q->data[q->front]; // 假设 front = (rear + length - 1) % MAX_SIZE
q->front = (q->front + 1) % MAX_SIZE;
q->length--;
return item;
}
// 主程序验证
int main() {
Queue q;
q.rear = 0;
q.length = 0;
// 初始化队列(这里仅示例)
for (int i = 0; i < 5; i++) {
enqueue(&q, i);
}
while (q.length > 0) {
int dequeued = dequeue(&q);
if (dequeued != -1) {
printf("Dequeued item: %d\n", dequeued);
}
}
return 0;
}
```
这个程序首先创建了一个队列结构体,包含数组 `data`、队尾指针 `rear` 和长度 `length`。然后定义了入队和出队函数,其中对队满和队空的情况进行了检查。在主程序中,我们先填充队列,然后不断尝试出队直到队列为空。
阅读全文