Sunteți pe pagina 1din 2

Arbori binari

Oricare din cei doi subarbori, sau chiar ambii, poate fi vid, deci fiecare nod tata
are
cel mult doi fii, fiul stang considerandu-se mai in varsta decat cel drept.

Operatii de baza la arborii binari


Asupra arborilor binari se pot defini urmatoarele operatii de baza:
-crearea/inserarea unui nod frunza intr-un arbore binar;
-cautarea unui nod al arborelui;
-parcurgerea unui arbore;
-stergerea unui arbore.

Parcurgerea arborilor binari


Pentru arborii binari, trei tipuri de parcurgere n adncime sunt uzuale:
-parcurgerea n preordine (RSD);
-parcurgerea n inordine (SRD);
-parcurgerea n postordine (SDR).

#include<iostream.h>
#include<conio.h>
int rad, n, st[20], dr[20];
void citire(int n){
int i;
for(i=1;i<=n;i++){
cout<<"dati nodul din stanga lui "<<i<<": ";
cin>>st[i];
cout<<"dati nodul din dreapta lui "<<i<<": ";
cin>>dr[i];}
}
void rsd(int nod){
if (nod){
cout<<nod<<" ";
rsd(st[nod]);

rsd(dr[nod]);}
}
void srd(int nod){
if (nod){
srd(st[nod]);
cout<<nod<<" ";
srd(dr[nod]);}
}
void sdr(int nod){
if (nod){
sdr(st[nod]);
sdr(dr[nod]);
cout<<nod<<" ";}
}
void main(void){
cout<<"Introduceti numarul de noduri:";
cin>>n;
cout<<"Introduceti nodul radacina:";
cin>>rad;
citire(n);
cout<<"Parcurgerea in preordine este:";
rsd(rad);cout<<endl;
cout<<"Parcurgerea in inordine este:";
srd(rad);cout<<endl;
cout<<"Parcurgerea in postordine este:";
sdr(rad);
getch();}

S-ar putea să vă placă și