Vous êtes sur la page 1sur 3

Arborii Binari

Definitie Un arbore binar este o multime de n >= 0 noduri, care daca nu este vida, contine un nod numit radacina, restul nodurilor formnd doi arbori disjuncti numiti subarborele stng si subarborele drept. Aceasta structura de date e importanta pentru ca e usor de reprezentat si prelucrat, orice arbore putnd fi transformat n arbore binar . Tehnica transformarii unui arbore generalizat n arbore binar Un arbore generalizat poate fi transformat intr-un arbore binar, astfel inct secventele de noduri pentru parcurgerea in preordinesa fie identice in cazul ambilor arbori. Un arbore generalizat A cu radacina A1 si subarborii A1,1, A1,2, ...,A1,k se transforma n arbore binar avnd radacina A1, A1,1 fiul sau stng, iar A1,i devin fiii drepti ai lui A1,i-1 pentru 2<=i<=k. Secventele de noduri n parcurgerea n preordine a arborelui generalizat si a celui binar obtinut prin transformare, sunt identice.

Exemplu: Se considera arborele generalizat de mai sus. Aplicnd regula descrisa, se obtine arborele binar reprezentat.

Implementarea arborilor binari Un arbore binar poate fi descris cu ajutorul urmatoarei structuri de date dinamice:
typedef int TCheie; class TNodAB { public: TCheie cheie; TNodAB *stg,*dr; TNodAB(TCheie k) { cheie=k; stg=dr=NULL; } };

Operatorii arborelui binar INITIALIZEAZA(A) - face vid arborele A; INSEREAZA(X,A) - insereaza cheia X n arborele A; CAUTA(X,A) - cauta cheia X, returnnd true la gasire; SUPRIMA(X,A) - suprima cheia X, daca exista; TRAVERSEAZA(A) - parcurge toate cheile arborelui A Traversarea arborilor binari Pentru un arbore binar, notnd cu R radacina si cu A si cu B subarborele sau stng, respectiv drept, cele 3 posibilitati de traversare sunt:
o o o

preordine - lista R, A, B inordine - lista A, R, B postordine- lista A, B, R.

Cele trei metode de traversare se concretizeaza n trei functii recursive n care Prelucrare este operatia ce trebuie facuta asupra fiecarui nod. Arbori binari ordonati. Arbori binari de naltime minima Arborele binar ordonat e arborele binar cu proprietatea ca parcurgnd nodurile n inordine, secventa cheilor este monoton crescatoare. Are proprietatea ca daca un nod oarecare al arborelui are cheia c, toate nodurile din subarborele stng al nodului au cheile mai mici dect valoarea c, respectiv toate cheile din subarborele drept au cheile mai mari sau egale cu c. De aici rezulta procedeul de cautare foarte simplu, prin

trecerea la fiul stng sau drept de la nodul curent, functie de relatia dintre cheia cautata si cea a nodului curent. Cum naltimea minima a unui arbore binar ordonat cu n noduri este hmin=[log2 (n+1)], rezulta ca o cautare ntr-un arbore binar ordonat necesita aproximativ log2n comparatii de chei, fata de n/2 comparatii ntr-o lista liniara.

Vous aimerez peut-être aussi