You are on page 1of 2

ARBORI DE CAUTARE

#include <iostream>
using namespace std;
struct nod {
int info;
// int frecv;
// alte informatii
nod *st, *dr; };
nod *rad;
void adauga(nod * & r, int nr)
{
if ( ! r ) // 1
{ r = new nod; r -> inf = nr; r -> st = 0; r -> dr = 0; } //2
else //3
if (nr < r->info) //4
adauga( r -> st , nr); //5
else if (nr > r->info ) // 6
adauga( r -> dr , nr ); //7
else cout << " \n informatia exista " ; // 8
}
// r->frecv++;
void SRD(nod *r)
{
if(r) {
SRD(r->st); //1
cout<< r->info; //2
SRD(r->dr); //3
}
}
void DRS(nod *r)
{
if ( r) {
DRS(r->dr); //1
cout<<r->info; //2
DRS(r->st); //3
}
}
nod* cautareABC( nod *r , int x )
{
if ( ! R ) return 0; //1

if ( r -> info == x) //2


return r; //3
if ( r -> info < x) //4
return cautareABC( r -> dr , x ); //5
return cautareABC( r -> st , x ); //6
}
nod* maxABC(nod *r)
{
if(r) {
if( ! r->dr) return r; //1
else return maxABC(r->dr); //2
}
else return NULL;
}
nod* minABC(nod *r)
{
if ( r) {
if( ! r->sr) return r; //1
else return minABC(r->st); //2
}
else return NULL;
}
//inserare nod nou
void inserare(nod *&r, int k)
{
if(!r)
{ cout<<ABC vid;
return; }
if(k<r->info)
inserare(r->st, k);
else if(k>r->info)
inserare(r->dr, k);
else
cout<<k<<" este in arbore";
}

You might also like