您的位置:首页 > 其它

算法提高 队列操作

2017-11-13 16:31 211 查看
问题描述
  队列操作题。根据输入的操作命令,操作队列(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

Queue<Integer> q=new LinkedList<Integer>();
PriorityQueue<Integer> priorityQueue = new PriorityQueue<Integer>(); 优先队列

q.add() 元素进队
q.remove() 首元素出队输出
q.size() 元素个数

import java.util.Arrays;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

public class Main1 {
static Scanner in=new Scanner(System.in);
static int min=0;
public static  void main(String[] args) {
int n=in.nextInt();
Queue<Integer> q=new LinkedList<Integer>();
for(int i=0;i<n;i++){
int flag=in.nextInt();
if(flag==1){
int e=in.nextInt();
q.add(e);
}
else if(flag==2){
if(q.isEmpty()){
System.out.println("no");
return;//强制退出
}
else System.out.println(q.poll());
}
else if(flag==3){
int len=q.size();
System.out.println(len);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: