队列操作

 

问题描述

  队列操作题。根据输入的操作命令,操作队列(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

 

第一种方法:

 

import java.util.ArrayList;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;


public class 队列操作1 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
Queue<Integer> queue = new LinkedList<Integer>();
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < n; i++){
int opes = scanner.nextInt();
if(opes == 1){
int num = scanner.nextInt();
queue.offer(num);
}else if(opes == 2){
if(!queue.isEmpty() || queue.size() > n){
list.add(queue.poll());
}else{
list.add(-1);

}
}else if(opes == 3){
list.add(queue.size());
}
}
for(int i = 0; i < list.size(); i++){
if(list.get(i) == -1){
System.out.println("no");
return;                         //一定要注意这里的return,如果不写,结果是60分,return表示
}else{
System.out.println(list.get(i));
}
}
scanner.close();
}

}

第二种方法:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;


public class 队列操作 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
Queue<Integer> queue = new LinkedList<Integer>();
for(int i = 0; i < n; i++){
int opes = scanner.nextInt();
if(opes == 1){
int num = scanner.nextInt();
queue.offer(num);
}else if(opes == 2){
if(queue.isEmpty()){
System.out.println("no");
return;                                      //同样要注意这里的return
}else{
System.out.println(queue.poll());
}
}else if(opes == 3){
System.out.println(queue.size());
}
}
scanner.close();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值