C++ 核心数据结构:Stack 与 Queue 类深度解析
Stack 类
(一)Stack 类的概念与特点
操作受限性
Stack 类主要提供了入栈(push)、出栈(pop)、获取栈顶元素(top)、判断栈是否为空(empty)和获取栈的大小(size)等操作。与其他数据结构相比,其操作相对简单且受限,但这也使得它在特定场景下的使用更加高效和便捷。例如,在表达式求值中,我们只需关注当前操作符和操作数,通过栈来存储和处理它们,避免了复杂的遍历和搜索操作。
后进先出(LIFO)原则
Stack 类遵循后进先出的规则,类似于一叠盘子,最后放置的盘子最先被取出。这种特性使得 Stack 在处理具有嵌套结构或需要回溯的问题时表现出色。例如,在函数调用过程中,每次函数调用时的局部变量、参数等信息会依次压入栈中,当函数返回时,这些信息按照后进先出的顺序依次弹出,从而恢复到调用前的状态。

(二)Stack 类的使用
1. 包含头文件与创建对象
要使用 Stack 类,需包含 <stack> 头文件。然后可以通过以下方式创建一个 Stack 对象:
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> myStack; // 后续操作...
return 0;
}
2. 基本操作示例
- 入栈操作(push):将元素压入栈顶。
- 出栈操作(pop):弹出栈顶元素。
- 获取栈顶元素(top):返回栈顶元素的值,但不弹出元素。
- 判断栈是否为空(empty):如果栈为空,返回
true,否则返回false。 - 获取栈的大小(size):返回栈中元素的数量。




