栈是一种遵循后进先出(LIFO, Last In First Out)原则的数据结构。在栈中,最后一个加入的元素会是第一个被移除的元素。这种结构在很多编程场景中都非常实用,比如在函数调用栈、算法中的辅助数据结构等。
栈的基本操作
栈的基本操作主要包括:
- Push - 向栈中添加一个元素。
- Pop - 从栈中移除最顶端的元素。
- Top - 获取栈顶元素的值,但不移除它。
- IsEmpty - 检查栈是否为空。
使用 C++ STL 实现栈
在 C++ 中,标准模板库(STL)提供了栈的实现。用<stack>头文件就可以。
包含必要的头文件:
#include <iostream>
#include <stack>
using namespace std;
创建一个栈 :
stack<int> s;
基本操作
Push:
s.push(10); // 将 10 压入栈
s.push(20); // 将 20 压入栈
Pop:
s.pop(); // 弹出栈顶元素
Top:
if (!s.empty()) {
printf("%d\n", s.top()); // 打印栈顶元素
}
IsEmpty:
if (s.empty()) {
printf("Stack is empty\n");
} else {
printf("Stack is not empty\n");
}