public class ArrayStack
// Instance variables
private E[] elems;
private int top;
// Constructor
public ArrayStack( int capacity ) {
elems = (E[]) new Object[ capacity ];
top = 0;
}
public boolean isEmpty() {
return ( top == 0 );
}
public E peek() {
return elems[ top-1 ];
}
public E pop() {
E saved = elems[ –top ];
elems[ top ] = null; // scrub the memory!
return saved;
}
public void push( E element ) {
if (top == elems.length) { // increase size
E[] newArray;
newArray = (E[]) new Object[ elems.length * 2 ];
for (int i=0; i