数据结构和算法分析

洛谷P1427(栈的简单应用)

2020-04-01  本文已影响0人  孤城若渊

题目是入门级,简单来说需要实现的功能可由下面两行概况
输入 3 65 23 5 34 1 30 0
输出 30 1 34 5 23 65 3
注意最后输出的数字后面是没有空格的。


代码参考如下

#include<stdio.h>
#include<stack>
using namespace std;
int main()
{
    int i=0;
    unsigned long int a;
    stack<int> st;
    scanf("%d",&a);
    while(a)
    {
        st.push(a);
        i++;
        scanf("%d",&a);
    }
    for(;i>0;i--)
    {
        printf("%d ",st.top());
        st.pop();
    }
    printf("%d",st.top());
    return 0;
}

这里读取数据这一块,最开始我用了一个不那么聪明的方法;后来则改为l如下方法。

    while(1)
    {
        scanf("%d",&a);
        if(a==0)
        break;
        st.push(a);
        i++;
    }

这里其实直接用基础的c通过for循环读取输出也可以简单地写出来。但是利用STL中的栈则更为直观简洁。
在读取数据中之所以设计了变量i,是为了最后输出能够方便地在数字间穿插空格。但是在看题解的时候,有大佬直接用stcak

上一篇 下一篇

猜你喜欢

热点阅读