蓝桥杯 算法提高 队列操作(c语言版详细注释)

试题 算法提高 队列操作

                                                                                  蓝桥杯试题解答汇总链接

资源限制

       时间限制:1.0s 内存限制:256.0MB


问题描述

       
队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。


输入格式

       第一行一个数字N。
  下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。


输出格式

       若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。


样例输入

7
1 19
1 56
2
3
2
3
2

样例输出

19
1
56
0
no

数据规模与约定

1<=N<=50

代码

蓝桥杯中相似题目及解答链接

#include<stdio.h>
#include<string.h>
int main(){
	int n,b,i,j,count1=0,count2=0;//count1保存入队的次数,count2保存出队的次数 
	scanf("%d",&n);
	int a[n];
	memset(a,-1,sizeof(a));//初始化数组a 
	while(n--){//循环至n=0结束 
		scanf("%d",&b);//读取此次的操作要求 
		if(b==1){//入队
			scanf("%d",&a[count1]);//保存至数组a中 
			count1++;//ccount1加一 
		}
		else if(b==2){//出队并输出 
			if(a[count2]==-1){//判断此时的数组a中是否是空队 
				printf("no\n");
				break;//是空队则直接结束循环 
			}
			else{
				printf("%d\n",a[count2]);//不是空队则输出对应的数 
				count2++;//count2加一 
			}
		}
		else{//计算队中元素个数并输出
			printf("%d\n",count1-count2);//入队次数减去出队次数则为现存的元素个数 
		}
	}
	return 0;
}
发布了51 篇原创文章 · 获赞 58 · 访问量 4645

猜你喜欢

转载自blog.csdn.net/xyf0209/article/details/104250086
今日推荐