算法提高 队列操作

时间限制:1.0s 内存限制:256.0MB

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

    public static void main(String[] args) {
        int command,n;                           //command代表命令,n代表次数
        Scanner sn = new Scanner(System.in);
        Queue<Object> que = new LinkedList<>();  //声明一个队列
        n = sn.nextInt();
        
        for(int i = 0;i < n;i ++){
            command = sn.nextInt();
            switch (command) {
            case 1:
                int input = sn.nextInt();
                que.offer(input);                       //入队操作
                break;
            case 2:
                if(!que.isEmpty())                      //队列不为空,则出队,否则输出“no”
                    System.out.println(que.poll());
                else {
                    System.out.println("no");
                }
                break;
            case 3:
                System.out.println(que.size());        //输出队列大小
                break;
            }
        }
    }
}

队列常用方法:

       size() 查看队列大小
       offer() 添加一个元素
       poll() 查看对头元素并移除
       peek() 查看对头元素,不移除
       contains() 查看队列是否包含某一元素
Last modification:March 17th, 2019 at 01:32 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment