1 条题解
-
0
手动实现栈
#include <bits/stdc++.h> using namespace std; int n; int op, x; //栈内元素为 s[1](栈底)~s[top](栈顶) int s[105], top; void _init() { top = 0; //栈内清空 } int _size() { return top; } void _push(int x) { top++; s[top] = x; } void _pop() { if (_size() > 0) top--; } int _top() { if (_size() == 0) return -1; return s[top]; } int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> op >> x; if (op == 1) { _push(x); } else if (op == 2) { cout << _top() << "\n"; } else if (op == 3) { _pop(); } } return 0; }
STL 实现
#include <bits/stdc++.h> using namespace std; int n; int op, x; stack<int> s; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> op >> x; if (op == 1) { s.push(x); } else if (op == 2) { if (s.size() > 0) cout << s.top() << "\n"; else cout << -1 << "\n"; } else if (op == 3) { if (!s.empty()) s.pop(); } } return 0; }
- 1
信息
- ID
- 1156
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 86
- 已通过
- 51
- 上传者