学习内容:
栈的基本概念(空栈、栈顶、栈底)和特点(先入后出)
入栈、出栈、获取栈顶元素和判断栈是否为空栈等基本操作
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();
}
}