题解 | #【模板】栈#
【模板】栈
https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int a = in.nextInt();
in.nextLine();
MyStack stack = new MyStack(a);
for(int i = 0; i < a;i++){
String input = in.nextLine();
if(input.startsWith("push")){
String[] s = input.split(" ");
stack.push(Integer.parseInt(s[1]));
}else if(input.startsWith("pop")){
stack.pop();
}else if(input.startsWith("top")){
stack.top();
}else{
System.out.println("非法的输入!");
}
}
}
static class MyStack{
int data[];
int size = 0;
int maxSize;
int top = 0;
public MyStack(int maxSize){
this.maxSize = maxSize;
this.data = new int[maxSize];
}
public void push(int val){
if(this.size == this.maxSize){
System.out.println("error");
}else{
data[top++] = val;
this.size++;
}
}
public void top(){
if(this.size == 0){
System.out.println("error");
}else{
System.out.println(data[top - 1]);
}
}
public void pop(){
if(this.size == 0){
System.out.println("error");
}else{
System.out.println(data[--top]);
this.size--;
}
}
}
}