给定一个初始为空的队列和一系列入队、出队操作,请生成C语言程序输出每次出队的元素。队列的元素值均为整数。输入第1行为1个正整数 n,表示操作个数;接下来 n 行,每行表示一个操作,格式为1 d或0。1 d表示将整数 d 入队,0表示出队。n 不超过20000。按顺序输出每次出队的元素,每个元素一行。若某出队操作不合法(如在队列空时出队),则对该操作输出 invalid。。
时间: 2024-02-22 20:57:35 浏览: 140
栈和队列练习
以下是C语言程序实现,可以实现给定一个初始为空的队列和一系列入队、出队操作,并输出每次出队的元素。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXN 20005
int queue[MAXN], front = 0, rear = 0;
void enqueue(int x)
{
queue[rear++] = x;
}
void dequeue()
{
if (front == rear) {
printf("invalid\n");
} else {
printf("%d\n", queue[front++]);
}
}
int main()
{
int n, op, x;
scanf("%d", &n);
while (n--) {
scanf("%d", &op);
if (op == 1) {
scanf("%d", &x);
enqueue(x);
} else if (op == 0) {
dequeue();
}
}
return 0;
}
```
程序中使用了一个数组queue来表示队列,front表示队头,rear表示队尾。enqueue函数用来将元素入队,dequeue函数用来将元素出队。在主函数中,根据输入的操作选择调用enqueue或dequeue函数。如果出队操作不合法,则输出invalid。
阅读全文