Vous êtes sur la page 1sur 2

Arbori,notiuni generale

Introducerea la toti arborii:

Arborii sunt structuri de date dinamice şi omogene. Cele mai comune utilizări ale arborilor sunt
căutarea în volume mari de date şi reprezentarea de structuri organizate ierarhic.

Vom define un arbore ca o multime finite de elemente numite noduri,care,daca nu este vida,exista un nod special
numit radacina arborelui,iar celelalte noduri sunt repartizate in submultimi disjuncte,fiecare din ele avind o structura
de arbore.

Radacinile subarborilor,daca exista se numesc succesorii nodului radacina . Definitia data pentru arbore este
odefinitie recursiva , definindu-se un arbore in functie de alti arbori . Aceasta definitie functioneaza pentru fiecare
descendent,oprindu-se in momentul cand un nod nu mai are descendenti. . Un nod care nu mai are descendenti se
numeste nod terminal. Definitia recursive este cea mai potrivita , deoarece recursivitatea reprezinta o caracterisitca
naturala a structurilor arborescenta .

Exista doua moduri de a specifica legatura nodurilor intr-un arbore.Datorita definirii recursive a acestora , in cadrul
programelor ce lucreaza cu arbori preferam o alocare dinamica folosind pointeri.

In reprezentarea dinamica a arborilor intr-un calculator,fiecarui nod I se ataseaza o zona de memorie ce va contine
toate informatiile necesare descrierii structurii arborescente . Aceasta inseamna ca in afara de campul cu informative
aferenta nodului , trebuie sa mai existe campuri care sa contina legatura catre toti descendentii sai.

Se numeste inaltimea unui arbore ca fiind lungimea celui mai lung drum de la nodul radacina la unul din nodurile
terminale.

Variabila de tip referinta “rad” memoreaza tot timpul adresa nodului radacina.Initial , cand arboreal este vid ,
valoarea variabilei “rad” este NULL.

Informatiile aferente fiecarui nod se citesc de pe un support de intrare (fisier,terminal), existand posibilitatea
structurari lor intr-o umltitudine de forme .

Principalele operaţii care pot fi implementate pe un arbore oarecare sunt:

Adăugare nod
-Adaugă un nod în arbore după un anumit criteriu (de exemplu la un anumit nod părinte). Operaţia presupune
alocarea memoriei pentru nod, copierea informaţiei utile şi modificarea legăturii părintelui.

Ştergere nod
-Presupune dealocarea memoriei pentru nodul respectiv şi pentru toţi descendenţii săi şi modificarea legăturii
părintelui.

Parcurgere arbore
-Presupune obţinerea unei liste care conţine toate informaţiile utile din arbore.

Căutare element
-Presupune obţinerea unui pointer la un nod pe baza unui criteriu de
Grafe orientate (digrafe)

Definiţia 1. G =(V, ), unde |V| < , V- vârfuri, : VV, aplicaţie multivocă, funcţia succesor;
se poate defini şi ca funcţie : V  (V). Ca notaţie (x) = x.
Definiţia 2. G =(V, U), V ca mai sus, iar U  VxV, de obicei U={(x,y) / xV, yx};
(x,y) se numeşte arc.

Proprietăţi
1o.Dacă |V| = n şi |U| = m, avem n = ordinul grafului iar m=dimensiunea grafului;

2o.Pentru (x,y) U avem x – extremitatea iniţială (stângă);


y – extremitatea terminală (dreaptă);

3o. (x,x) – arc buclă;


4o. Arce adiacente: u,v U dacă a) sunt distincte;
b) au o extremitate comună;

5o. Vârfuri adiacente: x,y V dacă a) sunt distincte; b)  arcul (x,y) sau (y,x)

6o. Fie uU, u=(x,y) atunci u este incident la x spre exterior; u este incident la y spre interior;
7o. g+(x) – gradul exterior (subgrad exterior) =  arcelor incidente spre exterior;
g -(x) – gradul interior (subgrad interior) =  arcelor incidente spre interior;

8o. g(x) = g+(x) + g -(x) – gradul vârfului x; dacă g(x)=0 atunci x – izolat;

9o. x – mulţimea succesorilor lui x; x = {y / (x,y) U}; A =, AV -1x – mulţimea predecesorilor lui x = {y /
 (y,x) U} = {y / x y};

Avem: g+(x) = | x |; g -(x) = |-1x| ;

Reprezentări ale grafelor orientate

Geometrică

Arcul se reprezintă:

Exemplu: V = {v1, v2, v3, v4, v5} iar v1={v2,v3}, v2={v4,v5}, v3= v2, v4= v5; v5= 

Avem U={(v1,v2),(v1,v3),(v2,v4),(v2,v5),(v3,v2),(v4,v5)}

2o. Matricea de adiacenţă


1, ∃(v i , v j )∈ U
Avem |V|=n, iar
A=( a ij) i,j=1,n
cu
a ij= {
0, in caz contrar

Vous aimerez peut-être aussi