class Stack<E> { // caution: no error checking!! E[] stack; int top; Stack(int cap) { stack = new E[cap]; } void init() { top = -1; } E pop() { return stack[top--]; } void push(E item) { stack[++top] = item; } boolean isEmpty() { return top == -1; } E top() { return stack[top]; } }