1. 程式人生 > >藍橋杯練習:演算法提高 佇列操作

藍橋杯練習:演算法提高 佇列操作

問題描述   佇列操作題。根據輸入的操作命令,操作佇列(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);
			}
		}
		
	}
}