参考队列模板写的,栈主要定义栈顶size,数组data,容量maxSize

import java.util.Scanner;

class MyStack{
    private int size=0;
    private int[] data;
    private int maxSize;
    public MyStack(int maxSize){
        this.maxSize =maxSize;
        this.data= new int[maxSize];
    }
    public void push(int x){
        if(this.size == maxSize){
            System.out.println("error");
        } else {
            this.data[size++] = x;
        }
    }
    public void pop(){
        if(this.size==0) System.out.println("error");
        else {
            System.out.println(this.data[size-1]);
            this.size--;
           
        }
    }
    
    public void top(){
        if(this.size==0) System.out.println("error");
        else {
            System.out.println(this.data[size-1]);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int s = Integer.parseInt(in.nextLine());
        MyStack stack= new MyStack(s);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String[] arr = in.nextLine().split(" ");
            switch(arr[0]){
                case "push": stack.push(Integer.parseInt(arr[1]));break;
                case "pop": stack.pop();break;
                case "top": stack.top();break;
                default: break;
            }
        }
    }
}