今天课余时间学习了栈的数组存储方式:
public class ArrayStack { //创建一个名为stack的私有整型数组 private int[] stack; //创建一个指向栈顶的指针,私有,整型 private int top; //构造函数初始化 public ArrayStack(int capacity){//capacity:容量;此处指数组的大小容量 stack = new int[capacity]; top = 0; } //入栈操作 public void push(int item){//item:指要放入栈中的整数元素 if(top == stack.length){ //此段代码用来判断栈是否溢出 throw new StackOverflowError(); //如果溢出则执行异常处理 } //* stack[top++] = item; } //出栈操作 public int pop(){ if(top == 0){ //此段代码判断栈是否为空 throw new IllegalStateException("Stack is empty"); // } // return stack[--top]; } //判断栈空,如果栈指针为0则栈空 public boolean isEmpty(){ return top == 0; } }