Pagini recente » Cod sursa (job #2252170) | Cod sursa (job #574576) | Cod sursa (job #1038885) | Cod sursa (job #2248736) | Cod sursa (job #775032)
Cod sursa(job #775032)
#include<fstream>
using namespace std;
FILE *f1=fopen("schi.in","r");
FILE *f2=fopen("schi.out","w");
/*int main()
{
int i,k=0,n,m,ok,start;
char c;
fscanf(f1,"%d%d", &n,&m);
fscanf(f1,"%c", &v[0]); */
typedef struct nod_ABC *ptr_ABC;
struct nod_ABC
{
int cheie;
int pozitie;
ptr_ABC st;
ptr_ABC dr;
};
ptr_ABC radacina;
int n,i,x;
ifstream fin ("schi.in");
ofstream fout("schi.out");
ptr_ABC inserare ( ptr_ABC p, int x, int nr)
{
int poz=nr;
if(!p)
{
p= new nod_ABC;
p->cheie=x;
p->pozitie=1;
p->st=p->dr=NULL;
}
else
if(poz <= p->pozitie)
{
(p->pozitie)++;
p ->st =inserare(p->st,x,poz);
}
else
if (poz > p->pozitie)
{
poz=poz-p->pozitie;
p->dr=inserare(p->dr,x,poz);
}
return p;
}
void parcurgere_inordine( ptr_ABC p)
{
if(p)
{
parcurgere_inordine(p->st);
fprintf(f2,"%d\n", p->cheie);
//fout<<p->cheie<<"\n";
parcurgere_inordine(p->dr);
}
}
int main()
{
fscanf(f1,"%d", &n);
//fin>>n;
//cout<<n;
for(i=1;i<=n;i++)
{
fscanf(f1,"%d", &x);
//fin>>x;
radacina=inserare(radacina,i,x);
}
parcurgere_inordine(radacina);
return 0;
}