问题描述 队列操作题。根据输入的操作命令,操作队列(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
代码语言:javascript复制import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int N = in.nextInt();
Queue<Integer> myQueue = new LinkedList<Integer>();
for ( int i = 0 ; i < N ; i ){
int flag = in.nextInt();
if ( flag == 1){
int element = in.nextInt();
myQueue.offer(element);
}else if ( flag == 2){
if ( myQueue.isEmpty()){
System.out.println("no");
/*
* 注意队列为空时有要强行退出.这是这题唯一的坑
* 如果不加"return;"就是60分,
* 加了"return;"这一行就是100分
*/
return;
}else{
System.out.println(myQueue.poll());
}
}else if ( flag == 3){
int len = myQueue.size();
System.out.println(len);
}
}
in.close();
}
}