藍橋杯練習:演算法提高 佇列操作
阿新 • • 發佈:2019-02-16
問題描述
佇列操作題。根據輸入的操作命令,操作佇列(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 資料規模和約定
下面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.ArrayDeque; import java.util.Queue; import java.util.Scanner; public class Main { private Queue<Integer> queue=new ArrayDeque<Integer>(); private int k,n; public int getK() { return k; } public void setK(int k) { this.k = k; } public int getN() { return n; } public void setN(int n) { this.n = n; } public void input() { Scanner scanner=new Scanner(System.in); n=scanner.nextInt(); scanner.close(); } public int getGBS() { int result,t=0; if(k>n) {t=k;k=n;n=t;} result=n; while(result%k!=0||result%n!=0) { result++; } return result; } public static void main(String[] args) { Queue<Integer> queue=new ArrayDeque<Integer>(); int n,i; Scanner scanner=new Scanner(System.in); n=scanner.nextInt(); while(n-->0) { i=scanner.nextInt(); if(i==1) queue.add(scanner.nextInt()); else if(i==2){ if(queue.size()<1) { System.out.println("no"); System.exit(0); } Integer remove = queue.remove(); System.out.println(remove); } else { int size = queue.size(); System.out.println(size); } } } }