上面代码实现了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]; } }
时间: 2024-10-25 06:04:16