记
Java中栈:Deque< Integer > stack = new ArrayDeque< Integer >();
// *** Stack methods ***
public void push(E e) {
addFirst(e);
}
public E pop() {
return removeFirst();
}
基本概念
- 后进者先出,先进者后出,这就是典型的“栈”结构。
- 从栈的操作特性来看,是一种“操作受限”的线性表,只允许在端插入和删除数据。
- 用数组实现的栈叫作顺序栈,用链表实现的栈叫作链式栈。
- Java官方建议使用Deque< Integer > stack = new ArrayDeque<>();代替栈
自动扩容数组栈
理解均摊分析法:入栈操作的均摊时间复杂度为 O(1)
重要例题
表达式求值
- 左括号直接压栈
- 只有运算符高于符号栈顶时才直接压栈
括号匹配
data01/src/data/stack/StringCheck.java
浏览器前进后退
data01/src/data/stack/Browser.java