8 条题解

  • 1
    @ 2024-7-15 22:00:21

    题目分析:

    面对有多组测试数据的题目,我们可以采用函数求解。

    本题中,因为要求反向输出,所以我采取了 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
    上传者