蓝桥杯 算法提高 队列操作(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;
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Derrick-Xu

谢大哥打赏,我会继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值