蓝桥杯练习:算法提高 队列操作

    xiaoxiao2021-03-25  116

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

    转载请注明原文地址: https://ju.6miu.com/read-19088.html

    最新回复(0)