java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
List<Integer> ls = new ArrayList<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Main m = new Main();
for(int i = 0; i < num; i++){
String a = in.next();
switch(a){
case "push":
int n = in.nextInt();
m.push(n);
break;
case "size":
m.size();
break;
case "pop":
m.pop();
break;
case "query":
m.query();
break;
default:
break;
}
}
}
public void push(int x){
ls.add(x);
}
public void pop(){
if(ls.size() > 0){
ls.remove(ls.size() - 1);
} else{
System.out.println("Empty");
}
}
public void query(){
if(ls.size() > 0){
System.out.println(ls.get(ls.size() - 1));
} else {
System.out.println("Empty");
}
}
public void size(){
System.out.println(ls.size());
}
}
描述
实现一个初始为空的栈,支持以下操作:
∙ ∙ push(x):将整数 xx 入栈;
∙ ∙ pop():若栈非空,则删除栈顶元素;否则输出 EmptyEmpty;
∙ ∙ query():若栈非空,则输出栈顶元素;否则输出 EmptyEmpty;
∙ ∙ size():输出栈中元素的数量。
输入描述:
输入的第一行包含一个整数 n (1≦n≦105)n (1≦n≦105),表示操作总数;
接下来的 nn 行,每行描述一条操作,格式如下:
∘ ∘ "push x",将整数 x (−109≦x≦109)x (−109≦x≦109) 入栈;
∘ ∘ "pop"、"query"、"size",执行对应操作。
输出描述:
对每组数据,按操作顺序依次输出所有需要输出的结果,每次输出占一行。
思路
1.根据题目要求,自己实现栈方法;
2.借助List结构的方法实现对应栈方法;