您的位置:首页 > 其它

算法提高 队列操作

2017-02-10 15:18 197 查看
问题描述

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: