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

版权声明:转载请附上原文链接哟! https://blog.csdn.net/weixin_44170305/article/details/89919894

风华是一指流砂,苍老是一段年华。

题目描述

 

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

c:

#include <stdio.h>

struct Train

{

    int num;

    Train *next;

};

Train *creat(int n){

    Train *t=new Train;

    scanf("%d",&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 ;

    printf("%d ",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);

    scanf("%d",&n);

    head = creat(n);

    head=rev(head);

    print (head);

    del(head);

    return 0;

}

c++:

#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
第二行 每节车厢的人数

输出

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

样例输入

copy

10 
110 112 108 100 118 100 60 64 56 62

样例输出

62 56 64 60 100 118 100 108 112 110
p=t;

猜你喜欢

转载自blog.csdn.net/weixin_44170305/article/details/89919894