C语言编写一个名为xunhuandui.cpp的程序,实现队列的各种基本运算(假设队列的元素类型为int),并在此基础上设计一个主程序,完成如下功能: (1). 初始化队列Q (2). 依次入队创建循
时间: 2024-11-20 07:37:37 浏览: 16
在C语言中,我们可以使用数组或链表来实现队列的基本操作。这里我们选择数组作为实现基础,因为数组更直观,适合描述固定大小的队列。首先,我们需要定义一个队列结构体,包含队列的前驱和后继指针,以及队列的长度。
```c
#include <stdio.h>
#define MAX_SIZE 5
typedef struct {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
// 队列初始化函数
void initQueue(Queue* q) {
q->front = -1;
q->rear = -1;
}
// 入队操作
void enqueue(Queue* q, int value) {
if (q->rear == MAX_SIZE - 1) {
printf("队列已满,无法入队。\n");
return;
}
q->data[++q->rear] = value;
if (q->front == -1) {
q->front = 0;
}
}
// 出队操作
int dequeue(Queue* q) {
if (q->front == -1 || q->front > q->rear) {
printf("队列为空,无法出队。\n");
return -1; // 返回一个特殊值表示错误
}
int removedValue = q->data[q->front++];
return removedValue;
}
// 主程序
int main() {
Queue Q;
initQueue(&Q);
// 初始化队列
for (int i = 0; i < 4; ++i) {
enqueue(&Q, i);
printf("Enqueue: %d\n", i);
}
// 出队并打印结果
while (Q.front != Q.rear) {
int value = dequeue(&Q);
if (value != -1) {
printf("Dequeue: %d\n", value);
} else {
break; // 如果遇到错误则停止循环
}
}
return 0;
}
```
在这个程序中,`initQueue()`用于初始化队列,`enqueue()`将元素添加到队尾,`dequeue()`从队头移除元素并返回。在`main()`函数里,我们演示了如何入队和出队操作,并打印出队列的内容。
阅读全文