8 条题解
-
1
题目分析:
面对有多组测试数据的题目,我们可以采用函数求解。
本题中,因为要求反向输出,所以我采取了
STL
中的 栈stack
来处理数据。当然你可以使用数组,但我的用意是借此机会来了解一下 什么是栈:栈(即
LIFO
表),是一种后进先出(Last In First Out)的数据结构。这意味着最后进入栈中的元素将会是第一个被取出的元素。栈可以类比为一堆盘子,放盘子和拿盘子都要从上面。栈的基本操作包括:
push()
:向栈顶添加一个元素。pop()
:从栈顶移除一个元素。top()
:获取栈顶元素但不移除。empty()
:检查栈是否为空。size()
:返回栈中元素的数量。
以下是使用栈的基本示例:
#include <cstdio> #include <stack> std::stack<int> s; int main() { // 入栈 s.push(1); s.push(2); s.push(3); // 出栈 while (!s.empty()) { printf("%d ",s.top()); s.pop(); } return 0; }
输出结果是
3 2 1
。代码实现:
#include<cstdio> #include<stack> std:: stack<int> s; int T,n,t; void d(void){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&t); s.push(t); }while(!s.empty()){ printf("%d ",s.top()); s.pop(); } printf("\n"); }int main(){ scanf("%d",&T); while(T--)d(); return 0; }
记得给五星好评哦喵~ 谢谢客官啦~
信息
- ID
- 2073
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 290
- 已通过
- 105
- 上传者