import java.util.Vector; /** * A Stack (of Object objects) * * This implementation uses contiguous memory * * @version 1.0 * @author Prof. David Bernstein, James Madison University */ public class Stack { private int top; // private Object[] contents; private Vector contents; //public static final int CAPACITY = 100; /** * Construct a new (empty) Stack */ public Stack() { top = -1; //contents = new Object[CAPACITY]; contents = new Vector(); } /** * Pop an Object off of the top of this Stack * * @return The Object on the top of this Stack */ public Object pop() { Object value; if (top != -1) { //value = contents[top]; value = contents.elementAt(top); top = top - 1; } else { value = null; } return value; } /** * Push an Object onto the top of this Stack * * @param first The Object to push */ public void push(Object first) { //if (top < CAPACITY-1) //{ top = top + 1; //contents[top] = first; contents.add(first); //} } }