栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是不要的末端,叫作栈顶(top)。
对栈的基本操作有:push(进栈)—插入、pop(出栈)—删除
栈是一个表,因此任何实现表的方法都能实现栈。显然,ArayList和linkedList都支持栈操作
1. 栈的链表实现
使用单链表实现,通过在表的顶端插入来实现push,通过删除表顶端元素实现pop,top操作只是考查顶端元素并返回它的值
2. 栈的数组实现
数组是更流行的解决方案
3.栈的应用
平衡符号(检验是否每个符号都成对出现)
后缀表达式(表达式以后缀记号给出时,没必要知道任何有限的规则)
中缀到后缀的转换(将一个标准形式的表达式转换为后缀表达式)
方法调用(当调用一个新方法时,主调例程的所以就不变了需要由系统存储起来)