C++ 栈模拟实现:Push 和 Pop 操作
C++ 栈模板题
题目描述
模拟实现一个栈,有 n 个操作,操作包括:
- 'Push x':在当前栈顶加入一个元素 x;
- 'Pop':输出当前栈顶元素,并令栈顶出栈。
输入格式
从标准输入读入数据。 第一行输入一个正整数 n(n<=10^6)。 接下来每行输入一个操作,操作中的元素值均为不大于 10^6 的正整数。
输出格式
输出到标准输出。 对于每个 'Pop' 操作,输出一行。 注意:如果 'Pop' 时栈为空,对该操作输出 '-1' 并不执行出栈操作。
样例 #1
样例输入 #1
6
Push 3
Push 4
Pop
Push 5
Pop
Pop
样例输出 #1
4
5
3
代码实现
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n;
cin >> n;
stack<int> st;
for (int i = 0; i < n; i++) {
string op;
cin >> op;
if (op == "Push") {
int x;
cin >> x;
st.push(x);
} else if (op == "Pop") {
if (!st.empty()) {
cout << st.top() << endl;
st.pop();
} else {
cout << -1 << endl;
}
}
}
return 0;
}
代码分析
- 使用
stack类来模拟栈结构。 - 使用循环遍历每个操作,根据操作类型进行不同的处理。
- 'Push' 操作:使用
st.push(x)将元素 x 入栈。 - 'Pop' 操作:使用
st.empty()判断栈是否为空。如果为空,输出 '-1';否则输出栈顶元素并使用st.pop()将栈顶元素出栈。
总结
本文通过 C++ 代码模拟实现了栈的基本操作,包括 Push 和 Pop 操作。掌握栈的基本操作对于理解和实现各种数据结构和算法至关重要。
原文地址: https://www.cveoy.top/t/topic/qvU2 著作权归作者所有。请勿转载和采集!