public class ArrayStack { // 使用数组来模拟栈的实现 //栈的大小 private int maxStack; //使用数组模拟栈 private int []stack; //表示栈顶的位置,默认情况下没有数据时,使用-1 private int top=-1; public ArrayStack(int maxStack){ this.maxStack=maxStack; stack=new int[maxStack]; } /* 压栈 * 弹栈 * 判断是否空栈 * 判断是否满栈 * */ //先判断是否已经满栈 public boolean isFull(){ return this.top==stack.length-1; } // 判断当前栈是否是空栈 public boolean isEmpty(){ return this.top==-1; } // 压栈 public void push(int num){ //先判断是否满了 if (isFull()){ //如果满了 throw new RuntimeException("此栈已满"); } //没有满的话 就可以加了 top++; stack[top]=num; } //弹栈 public int pop(){ if (isEmpty()){ //如果是空的话,那就没有数据可以弹 throw new RuntimeException("空栈无法弹"); } int num =stack[top]; top--; return num; } // 查看栈中所有元素 public void list(){ if (isEmpty()){ throw new RuntimeException("空栈无数据"); } for (int i = 0; i < stack.length; i++) { System.out.println(stack[i]); } } public int length(){ return this.top+1; } }