Stack 栈是一种先进后出的数据结构,应用非常的广泛
public class ArrayStack{ public int maxSize; //最大的容量 public T[] data; //这里是使用数组来实现栈 public int top = -1; //栈顶,默认初始化值为-1 public ArrayStack(int capacity) { this.maxSize = capacity; data = (T[]) new Object[maxSize]; } //栈满 public boolean isFull() { return top == maxSize - 1; } //栈空 public boolean isEmpty() { return top == -1; } //入栈-push public void push(int value) { //先判断栈是否满 if(isFull()) { System.out.println("栈满"); return; } top++; stack[top] = value; } //出栈-pop, 将栈顶的数据返回 public int pop() { //先判断栈是否空 if(isEmpty()) { //抛出异常 throw new RuntimeException("栈空,没有数据~"); } int value = stack[top]; top--; return value; } //显示栈的情况[遍历栈], 遍历时,需要从栈顶开始显示数据 public void list() { if(isEmpty()) { System.out.println("栈空,没有数据~~"); return; } //需要从栈顶开始显示数据 for(int i = top; i >= 0 ; i--) { System.out.printf("stack[%d]=%dn", i, stack[i]); } } }



