Download - Curs9
Seminar 2
Cursul 9. Structuri de date arborescente
Arborii sunt SD des folosite n manipularea datelor. Se pot defini ca grafe particulare fr cicluri care au cteva noduri speciale:
un nod RADACIN, care nu are predecesor;
noduri interne arborelui, care au att predecesor ct i succesori (unul sau mai muli);
noduri frunz care nu au succesori;
Exemple:1)arbore ternar complet:
2) arbore oarecare: Se pot eticheta att nodurile ca n exemplul 2) ct i muchiile (sau arcele).1. Traversarea arborilor.
Exist 2 modaliti fundamentale de traversare (parcurgere) a arborilor:
n lime (breadth first);
n adncime (depth first).Traversarea n lime corespunde unei parcurgeri pe nivele: se viziteaz rdcina arborelui i apoi succesorii si de pe nivelul 1 (de adncime 1) apoi succesorii nodurilor de pe nivelul 2, s.a.m.d.
Traversarea n adncime corespunde unui drum n adncime de la rdcina la o frunz apoi revenirea la un nivel imediat superior si parcurgerea unui drum pn la alt frunz, s.a.m.d.
Exemplu:
typedef struct
{ int dim;
int m[Max][Max];
} MAT;void latime(MAT a, int incep)
{ int coada[n.dim],vizit[n.dim];
int prim,ultim,lin,i,j,n;
n=a.dim;
for(i=1;i