栈
入门栈把"最后来的元素先处理"变成一个稳定抽象。
// 算法讲解
栈
会依次演示 push、top 和 pop,让后进先出过程可视化。
待机
速度 中
待机 ⌨1vector<int> st;
2
3void pushValue(int x) {
4 st.push_back(x);
5}
6
7void popValue() {
8 if (!st.empty()) st.pop_back();
9}
10
11int topValue() {
12 return st.back();
13}
复杂度分析
时间 push/pop/top O(1)
空间 O(n)
最优 O(1)
最坏 O(1)
算法讲解
栈只开放一端操作,push 把元素压到顶部,pop 从顶部弹出,因此遵循后进先出规则。
括号匹配、表达式求值、DFS 非递归写法和函数调用栈,都是栈思维的典型应用。
如果你能明确区分"当前顶部是谁"和"什么时候需要回退到上一个状态",就已经抓住了栈的核心。
实现上既可以用数组模拟,也可以用链表实现。