public class GenericStack { private static final int defaultSize = 1000; private Item [] data; private int numElements = 0; GenericStack () { data = (Item []) new Object[defaultSize]; } GenericStack (int initialSize) { data = (Item []) new Object[initialSize]; } public boolean isEmpty() { return (numElements == 0); } public void push(Item c) { if (numElements == data.length) { Item [] tmpData = (Item []) new Object [Math.max(2*data.length, 1)]; for (int i = 0; i