import java.util.List; import java.util.ArrayList; /** * 栈是一种特殊的线性表。 * 其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。 */ public class Stack<E> { private List<E> stack = new ArrayList<E>(); /** * 进栈 * @param 进栈元素 */ public void push(E e) { stack.add(e); } /** * 出栈 * @return 栈顶元素 */ public E pop() { if (!isEmpty()) { E result = stack.get(stack.size() - 1); stack.remove(stack.size() - 1); return result; } else { return null; } } /** * 查询栈是否为空 * @return */ public boolean isEmpty() { return stack.isEmpty(); } }