public interface Stack { /** * 判断栈是否为空 * @return */ boolean isEmpty(); /** * 返回栈顶元素,并不出栈 * @return */ Object peek(); /** * 入栈 * @param target * */ void push(Object o); /** * 出栈 * @return E */ Object pop(); } public class ArrayStack implements Stack { private int top = -1; private Object[] stack; public ArrayStack(int maxElements) { stack = new Object[maxElements]; } public boolean isEmpty() { return top == -1; } public Object peek() { if(top<0) throw new java.util.EmptyStackException(); return stack[top]; } public Object pop() { if(top<0) throw new java.util.EmptyStackException(); return stack[top--]; } public void push( Object o ) { if( top == stack.length-1 ) t