1.栈的定义
栈是通过访问它的一端来实现数据存储和检索的一种线性数据结构。换句话说,栈的修改是按先进后出的原则进行的。因此,栈又称为后进先出(Last In First Out,LIFO)的线性表。在栈中进行插入和删除操作的一端称为栈顶(Top),另一端称为栈底(Bottom)。
2.栈的基本运算
(1).初始化栈:创建一个空栈;
(2).判断是否为空;
(3).入栈Push(S,x):将元素加入栈顶,并更新指针;
(4).出栈Pop(S):将栈顶元素从栈中删除,并更新栈顶指针;
(5).读取栈顶元素值Top(S): 返回栈顶值,但不修改栈顶指针。
3.栈的存储结构
(1)顺序存储
(2)链式存储
4.栈的应用
表达式求值,括号匹配。
在计算机语言的实现以及将递归过程转换为非递归过程的处理中,栈有非常重要的作用。
5.Java的实现
Stack<Character> sta = new Stack<>();//定义
sta.push('a'); // 入栈
sta.pop(); //出栈
boolean b = sta.empty();//判断是否为空