/** A nonrecursive generic method for reversing an array */
public static <E> void reverse(E[] a) {
Stack<E> S = new ArrayStack<E>(a.length);
for (int i=0; i < a.length; i++)
S.push(a[i]);
for (int i=0; i < a.length; i++)
a[i] = S.pop();
}