7-2 栈的实现及基本操作 分数 10 作者 朱允刚 单位 吉林大学 给定一个初始为空的栈和一系列压栈、弹栈操作,请编写程序输出每次弹栈的元素。栈的元素值均为整数。 输入格式: 输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d压栈,0表示弹栈。n不超过20000。 输出格式: 按顺序输出每次弹栈的元素,每个元素一行。若某弹栈操作不合法(如在栈空时弹栈),则对该操作输出invalid。 输入样例: 7 1 1 1 2 0 0 0 1 3 0 输出样例: 2 1 invalid 3 代码长度限制 16 KB 时间限制 50 ms 内存限制 10 MBjava
时间: 2024-03-10 15:46:33 浏览: 303
链式栈的基本操作
5星 · 资源好评率100%
以下是Java实现栈的基本操作,并输出每次弹栈的元素的代码:
```java
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
Stack<Integer> stack = new Stack<Integer>();
for (int i = 0; i < n; i++) {
int op = input.nextInt();
if (op == 1) {
int num = input.nextInt();
stack.push(num);
} else {
if (stack.empty()) {
System.out.println("invalid");
} else {
System.out.println(stack.pop());
}
}
}
}
}
```
其中,使用Java中的Stack类实现栈的基本操作,每次弹栈时先进行栈空判断,如果栈为空则输出"invalid",否则弹出栈顶元素并输出。
阅读全文