Pagini recente » Cod sursa (job #2147914) | Cod sursa (job #1424564) | Cod sursa (job #1531906) | Cod sursa (job #1995091) | Cod sursa (job #2454890)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int max2=1;
struct nod{
int info;
nod *stanga;
nod *dreapta;
}radacina;
void functie(nod &nod1, int nr,int max1)
{
if(nod1.info>nr)
{
if(nod1.stanga!=NULL)
{
functie(*(nod1.stanga),nr,max1);
}
else
{
nod1.stanga=new nod;
(*nod1.stanga).info=nr;
(*nod1.stanga).stanga=NULL;
(*nod1.stanga).dreapta=NULL;
}
}
if(nod1.info<nr)
{
if(nod1.dreapta!=NULL)
functie(*nod1.dreapta,nr,max1+1);
else
{
nod1.dreapta=new nod;
(*nod1.dreapta).info=nr;
(*nod1.dreapta).dreapta=NULL;
(*nod1.dreapta).stanga=NULL;
if(max1>max2)
max2=max1;
}
if(nod1.stanga!=NULL)
{
functie(*(nod1.stanga),nr,max1);
}
}
}
int main()
{
int i,n,x;
fin>>n;
fin>>radacina.info;
for(i=2;i<=n;i++)
{
fin>>x;
functie(radacina,x,1);
}
fout<<max2+1;
return 0;
}