// Stack implementation with arrays
public class IntStack {
private int capacity = 1000;
private int [] items = new int [capacity];
private int top = -1;
public IntStack() {
// do nothing
}
public boolean isEmpty() {
return top == -1;
}
public int pop() throws StackException {
if(!isEmpty()) {
int n = items[top];
top--;
return n;
}
else throw new StackException("Stack underflow");
}
public void push(int n) throws StackException {
if (top == capacity - 1)
throw new StackException("Stack overflow");
top++;
items[top]=n;
}
}
public class StackException extends RuntimeException {
public StackException(String s) {
super(s);
}
}