卡码java基础课 | 19.洗盘子(栈)

学习内容:
栈的基本概念(空栈、栈顶、栈底)和特点(先入后出)
入栈、出栈、获取栈顶元素和判断栈是否为空栈等基本操作
Stack类的使用

重点归纳:
栈:后进先出,LIFO,last in first out。
使用方法:import java.util.Stack。
常用方法:
isEmpty(): 判断栈是否为空栈,如果为空栈返回true, 否则或者false。
push(): 进栈操作,将新的元素放入到栈中,新的元素成为栈顶元素。
pop(): 出栈操作,栈顶元素从栈中离开, 并且返回栈顶元素。
peek(): 获取栈顶元素,但是不会移除它。
size(): 获取栈的长度,即栈中元素的数量。
易错点提示:
要出栈操作的的时候必须判断是否空栈,否则会出错
if(s.isEmpty() == false){
s.pop();
}

例题:


解:

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

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        Stack<Integer> s = new Stack<>();
        
        int n = sc.nextInt();
        for(int i = 0; i < n; i++){
            int num = sc.nextInt();
            s.push(num);
        }
        int m = sc.nextInt();
        for(int j = 0; j < m; j++){
            int operation = sc.nextInt();
            if(operation == 1){
                //要出栈的时候必须判断是否空栈,否则会出错
                if(s.isEmpty() == false){
                    s.pop();    
                }
            }
            else{
                int num = sc.nextInt();
                s.push(num);
            }
        }
        
        if(s.isEmpty()){
            System.out.println("All the dishes have been washed.");
        }
        else{
            System.out.println(s.peek());
        }
        
        sc.close();
    }
}
posted @ 2024-03-25 17:49  小陈-自学记录  阅读(38)  评论(0)    收藏  举报