顺序栈(数组实现)

上面代码实现了Stack的 isEmpty(),isFull(),clear(),push(),pop(),peek()方法。顺序栈,必须要同时检查下溢出(underflow)和上溢出(overflow)。

public class Stack {
    private int[] stack;
    private static final int defaultSize = 100;
    private int size;
    private int topIndex;
    public Stack() {
        setUp(defaultSize); 
    }
    public Stack(int sz) {
        setUp(sz);
    }
    public void setUp(int sz) {
        size = sz; topIndex = 0; stack = new int[size];
    }
    public boolean isEmpty() {
        return topIndex == 0;
    }
    public boolean isFull() {
        return topIndex == size;
    }
    public void clear() {
        topIndex = 0;
    }
    public void push(int x) throws Exception {
        if(isFull()) throw new Exception("overflow");
        else stack[topIndex++] = x;
    }
    public int pop() throws Exception {
        if(isEmpty()) throw new Exception("underflow");
        else return stack[--topIndex];
    }
    public int peek() throws Exception {
        if(isEmpty()) throw new Exception("underflow");
        else return stack[topIndex-1];
    }
}
原文地址:https://www.cnblogs.com/lasclocker/p/4855848.html