卡码java基础课 | 20.排队取奶茶(队列)

学习内容:
队列的基本概念(队头、队尾)和特点(先入先出)
双端队列
入队、出队、获取队头元素和判断队列是否为空等基本操作
ArrayDeque的使用

重点归纳:
队列,先入先出,FIFO,first in first out。
双端队列,同时实现两端的添加和删除操作,即同时有队列和栈的特性。
使用方法:导入Queue接口和队列实现类ArrayDeque、LinkedList类。import java.util.Queue; import java.util.ArrayDeque。
常用方法:
isEmpty(): 判断队列是否为空,如果队列为空返回true, 否则返回false。
add(): 入队操作,将新的元素添加到队列的尾部。
poll(): 出队操作,获取并移除队列的头部元素。
peek(): 访问队列的头部元素,但不会将其移除。
size(): 获取队列的长度,即队列中元素的数量。

例题:


解:

点击查看代码
import java.util.Scanner;
import java.util.Queue;
import java.util.ArrayDeque;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        Queue<String> q = new ArrayDeque<>();
        for(int i = 0; i < n; i++){
            String name = sc.next();
            q.add(name);
        }
        int m = sc.nextInt();
        for(int j = 0; j < m; j++){
            if(sc.nextInt() == 1){
                if(q.isEmpty() == false){
                    q.poll();
                }
            }
            else{
                q.add(sc.next());
            }
        }
        
        if(q.isEmpty()){
            System.out.println("There are no more people in the queue.");
        }
        else{
            System.out.println(q.peek());
        }
        
        sc.close();
    }
}
posted @ 2024-03-25 19:55  小陈-自学记录  阅读(34)  评论(0)    收藏  举报