package DataStructures; import java.util.NoSuchElementException; /** * An array implementation of a stack * @author Peter Williams */ public class StackArray implements Stack { private Object[] stack; private int top; // for storing next item public StackArray() { stack = new Object[1]; top = 0; } public boolean isEmpty() { return top == 0; } public void push(Object item) { if (top == stack.length) { // expand the stack Object[] newStack = new Object[2*stack.length]; System.arraycopy(stack, 0, newStack, 0, stack.length); stack = newStack; } stack[top++] = item; } public Object pop() { if (top == 0) { throw new NoSuchElementException(); } else { return stack[--top]; } } }