简述
-
栈和数组类似,也是一种线性结构
-
相比数组,栈对应的操作是数组的子集
-
只能从一端添加元素,也只能从同一端取出元素,这一端称为栈顶
-
栈是一种后进先出(LIFO–Last In First Out)的数据结构
应用
-
编辑器中的撤销(Undo)操作
-
程序调用的系统栈(方法栈???)
联系实际工作中因为逻辑不当导致的
StackOverflowError
错误。
接口定义
public interface Stack<E> {
/**
* 压入栈
*
* @param e 压入栈的元素
*/
void push(E e);
/**
* 出栈
*
* @return 返回栈顶元素,如果没有返回NULL
*/
E pop() throws UnsupportedOperationException;
/**
* 查看栈顶元素
*
* @return 返回栈顶元素,如果没有返回NULL
*/
E peek();
/**
* 栈的元素数量
*
* @return 栈的元素数量
*/
int getSize();
/**
* 是否为空栈
*
* @return 为空返回True
*/
default boolean isEmpty() {
return getSize() == 0;
}
}