Cod sursă (job #77648)

Utilizator avatar dragosv Dragos Vecerdea dragosv IP ascuns
Problemă Pointeri Compilator cpp | 0,84 kb
Rundă Tema 2 clasele 9-10 2014/15 Status evaluat
Dată 8 oct. 2014 08:48:55 Scor 0
#include <stdio.h>
using namespace std;
#define M 200001
int st[M] ,dr[M];
int poz ,pr ,prec ,radacina;
void parcarb(int poz)
{
    if (poz==-1) return ;
    parcarb( st[poz] );
    if(prec==-1) pr = poz;
    else (dr[prec]=poz);
    st[poz]=prec;
    prec=poz;
    parcarb( dr[poz] );//parcurg arborele recursiv
}
FILE *fin ,*fout;
int n;
int main(){

    fin = fopen("pointeri.in" ,"r");
    fout = fopen("pointeri.out" ,"w");
    int i;
    fscanf(fin ,"%d%d" , &n ,&radacina);
    prec=-1;
    for(i=0;i<n;i++)
    {
        fscanf(fin ,"%d" ,&st[i]);
    }
    for(i=0;i<n;i++)
    {
        fscanf(fin ,"%d" ,&dr[i]);
    }
    parcarb(radacina);
    fprintf(fout ,"%d\n" ,pr);
    for(i=0;i<n;i++)
    {
        fprintf(fout ,"%d " ,st[i]);
    }
    fprintf(fout ," ");
    for(i=0;i<n;i++)
    {
        fprintf(fout ,"%d " ,dr[i]);
    }
    return 0;
}