7-1 队列的实现及基本操作
分数 5
全屏浏览题目
切换布局
作者?朱允刚
单位?吉林大学
给定一个初始为空的队列和一系列入队、出队操作,请编写程序输出每次出队的元素。队列的元素值均为整数。
输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d入队,0表示出队。n不超过20000。
按顺序输出每次出队的元素,每个元素一行。若某出队操作不合法(如在队列空时出队),则对该操作输出invalid。
7
1 1
1 2
0
0
0
1 3
0
1
2
invalid
3
#include<stdio.h>
struct Queue{
int top;
int arr[20000]
};
int main(){
int n;
scanf("%d",&n);
struct Queue p;
p.top=0;//初始化队列
int count=-1;//标记队列的数量-1;
int index=-1;//标记队尾的数下标
for(int i=0;i<n;i++){
int flag;
int num;
scanf("%d",&flag);//先判断,在输入num
if(flag==1){
scanf("%d",&num);
p.arr[++index]=num;//入队列
count++;
}else if(flag==0&&count!=-1){
printf("%d\n",p.arr[p.top]);
p.top++;
count--;
}else{
printf("invalid\n");
}
}
return 0;
}
?