Pagini recente » Cod sursa (job #18671) | Cod sursa (job #2116161) | Cod sursa (job #4527) | Cod sursa (job #1621575) | Cod sursa (job #2204632)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("arbore.in");
ofstream g("arbore.out");
struct nod
{
char nume[20],prenume[20];
int CNP;
nod *st,*dr;
};
int x,y,k,s,z;
void creare(nod*&p)
{
int nr;
char num[20],pre[20];
f>>nr;
if(nr==0)
p=NULL;
else
{
p=new nod;
p->CNP=nr;
f>>num;
f>>pre;
strcpy(p->nume,num);
strcpy(p->prenume,pre);
creare(p->st);
creare(p->dr);
}
}
void nivel(nod*p,int niv)
{
if(p!=NULL)
{
if(niv==k)
g<<p->nume<<" "<<p->prenume<<" "<<p->CNP<<endl;
else
{
nivel(p->st,niv+1);
nivel(p->dr,niv+1);
}
}
}
void verii_primari(nod*p)
{
if(p!=NULL)
{
if((p->st->st!=NULL&&p->st->st->CNP==x)||(p->st->dr!=NULL&&p->st->dr->CNP==x))
{
if(p->dr->st!=NULL)
g<<p->st->st->nume<<" "<<p->dr->st->prenume;
if(p->dr->dr!=NULL)
g<<p->dr->dr->nume<<" "<<p->dr->dr->prenume;
}
if((p->dr->st!=NULL&&p->dr->st->CNP==x)||(p->dr->dr!=NULL&&p->dr->dr->CNP==x))
{
if(p->dr->st!=NULL)
g<<p->st->st->nume<<" "<<p->st->st->prenume;
if(p->st->dr!=NULL)
g<<p->st->dr->nume<<" "<<p->st->dr->prenume;
}
verii_primari(p->st);
verii_primari(p->dr);
}
}
int main()
{
nod*p;
p=NULL;
f>>k>>x>>y>>z>>s;
creare(p);
g<<"pers de pe niv k sunt"<<endl;
nivel(p,1);
g<<"---------------------"<<endl;
g<<"verii primari ai persoanei x"<<endl;
verii_primari(p);
return 0;
}