栈(Stack)
一摞盘子:只能从最上面放、从最上面取 —— 后进先出(LIFO)。
一、五个核心操作
| 操作 | 含义 |
|---|---|
push(x) | 把 x 压到栈顶 |
pop() | 弹掉栈顶元素(不返回值) |
top() | 查看栈顶(不弹出) |
empty() | 是否为空 |
size() | 元素个数 |
二、互动演示:亲手 push / pop
绿色是栈顶。试试连续 push 再 pop,体会"后进先出"。
栈为空。push 一个数试试。
三、C++ STL stack
#include <stack>
using namespace std;
stack<int> s;
s.push(1);
s.push(2);
s.push(3); // 底→顶:1 2 3
cout << s.top(); // 3(看栈顶)
s.pop(); // 弹掉 3
cout << s.top(); // 2
// 空栈别碰:先判断
if (!s.empty()) s.pop();
top() 看一眼,pop() 才是弹出;空栈调用 top()/pop() 是未定义行为。应用:括号匹配、表达式求值、递归调用栈。