• YTU 2607: A代码填空题--更换火车头


    2607: A代码填空题--更换火车头

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 91  解决: 73

    题目描述

    注:本题只需要提交填写部分的代码,请按照C++方式提交。

    假设火车有n节车厢(从前往后编号依次为1,2,3,...,n),每节车厢的人数依次为M1,M2,M3,...,Mn。火车头的编号为0,连接在1号车厢上。火车进站后,将火车头从1号车厢卸下,接在第n节车厢上,反方向行驶。即火车的1号车厢为原来的第n号车厢,...,火车的n号车厢为原来的第1号车厢。请输出火车反向行驶后,每节车厢的人数。

    #include <iostream>
    using namespace std;
    struct Train {
        int num;  //人数
        Train *next;
    };
    Train *creat(int n)
    {
        Train *t=new Train;
        cin>>t->num ;
        if(n==1) {
            t->next = NULL;
            return t;
        }
        t->next = creat(n-1);
        return t;
    }
    void print(Train *p){
        if(p==NULL)
            return ;
        cout<<p->num<<" ";
        print(p->next);
    }
    void del(Train *p)
    {
        if(p==NULL)
            return ;
        Train *t;
        t=p->next;
        delete p;
        del(t);
    }
    Train *rev(Train *p)
    {
        Train *head=NULL,*t;
        while(p){
            t=p->next;      
            p->next = head; 
            head = p;       
    /*******************************   
           请在该部分补充缺少的代码
    ********************************/
        }
        return head;
    }

    int main(void)
    {
        int n;
        Train *head;
        Train *rev(Train *p);
        cin>>n;
        head = creat(n);
        head=rev(head);
        print (head);
        del(head);
        return 0;
    }

    输入

    第一行 n
    第二行 每节车厢的人数

    输出

    火车反向行驶后,每节车厢的人数。

    样例输入

    10 
    110 112 108 100 118 100 60 64 56 62

    样例输出

    62 56 64 60 100 118 100 108 112 110

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include <iostream>
    using namespace std;
    struct Train
    {
        int num;
        Train *next;
    };
    Train *creat(int n)
    {
        Train *t=new Train;
        cin>>t->num ;
        if(n==1)
        {
            t->next = NULL;
            return t;
        }
        t->next = creat(n-1);
        return t;
    }
    void print(Train *p)
    {
        if(p==NULL)
            return ;
        cout<<p->num<<" ";
        print(p->next);
    }
    void del(Train *p)
    {
        if(p==NULL)
            return ;
        Train *t;
        t=p->next;
        delete p;
        del(t);
    }
    Train *rev(Train *p)
    {
        Train *head=NULL,*t;
        while(p)
        {
            t=p->next;
            p->next = head;
            head = p;
            p=t;
        }
        return head;
    }
    int main(void)
    {
        int n;
        Train *head;
        Train *rev(Train *p);
        cin>>n;
        head = creat(n);
        head=rev(head);
        print (head);
        del(head);
        return 0;
    }
    

  • 相关阅读:
    将base64格式的字符串生成文件
    断点继传
    判断文件后缀
    递归遍历指定目录,获取该目录下最大的文件信息
    web项目部署后动态编译无法找到依赖的jar包
    Java程序动态编译Java源文件
    JS中substr与substring的区别
    java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment
    python 基础学习笔记(4)--字典 和 集合
    python 基础学习笔记(3)--列表与元组
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989531.html
Copyright © 2020-2023  润新知