Sunteți pe pagina 1din 30

Tema 5. Arbori.

1. Arbori. Teorema de caracterizare a arborilor.


2. Prezentarea arborilor:
2.1 Secvența de grade
2.2 Codul Prufer
2.3 Vectori de tați
Arbori. Teorema de caracterizare a arborilor.
Definiție. Numim arbore orice graf neorientat conex si fără cicluri.

Teorema. Fie G = ( X,U ) un graf neorientat. Următoarele afirmații


sunt echivalente:
1. G este arbore.
2. G este aciclic maximal.
3. G este conex minimal.

Teorema. Dacă G = ( X,U ) este arbore, atunci |U |= |X| −1.


Exemplul. Considerăm graful G = ( X,U ) , unde X = {1,2,...,15} (deci
|X| =15) Din reprezentarea grafică se poate vedea că acest graf este
conex si că nu conține cicluri si astfel graful este un arbore. Avem de
asemenea |U| =14 si astfel este verificată relația |U| = |X| −1. :
Dacă la acest graf adăugăm o muchie, de exemplu {3,8} se obține
Graful reprezentat. Se observă că se formează ciclul C = {1,3,8, 4,1} ,
astfel că noul graf este ciclic, deci nu mai este un arbore. Acesta si
înseamnă ca este maximal aciclic.
Dacă se elimină o muchie, de exemplu {1,4}, atunci se obține graful
reprezentat. Se vede că am obținut astfel un graf neconex (componente
conexe C 1= {1, 2,3,5,6,10 } si C2 = {4,7,8,9,11,12,13,14,15} si deci graful
nou nu este arbore. Acesta și inseamnă că este minim conex.
Teorema de caracterizare a arborelui. Fie graful G = ( X,U ) un graf
neorientat cu n vârfuri. Următoarele afirmații sunt echivalente:
1) G este un arbore.
2) Oricare două vârfuri din G sunt unite printr-un lanț simplu unic.
3) G este conex minimal (dacă suprimăm o muchie, graful devine
neconex)
4) G este conex și are n-1 muchii
5) G este aciclic și are n-1 muchii
6) G este aciclic maximal (dacă adăugăm o muchie, graful obținut
conține cicluri)
2. Prezentarea arborilor:
2.1 Secvența de grade

Teorema. Numerele natural 0 ≤ 𝑑1 ≤ 𝑑2 … ≤ 𝑑𝑛 𝑛 ≥ 2 sunt gradele


varfurilor unui arbore dacă si numai dacă 𝑑1 + 𝑑2 + ⋯ + 𝑑𝑛 = 2𝑛 − 2

Demonstrația acestei teoreme oferă o soluție constructivă a unui


arbore.
Gradele varfurilor arborelui
k 1 2 3 4 5 6 7
D(k) 1 1 1 3 3 1 2
Secvența gradelor care prezintă arborele dat 1,1,1 1,2,3,3
Secvența gradelor varfurilor unui arbore:
1 1 1 1 1 2 3 4. Decenati arborele corespunzator.
Secvența gradelor varfurilor unui arbore:
1 1 1 1 1 2 3 4. Decenati arborele corespunzator.

7
6 4 5

1 2 3
2.2 Reprezentarea unui arbore prin codul Prufer:

Dacă An este un arbore cu varfurile x1, x2, ... xn suprimăm vârful


terminal cu cel mai mic indice și reținem a1 varful adiacent cu
vârful suprimat. Am obținut astfel un subgraf conec și aciclic
An-1

Repetăm procedeul pentru An-1 , reținem numărul a2 si tot asa


mai departe până rămâne un arbore A2
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Codul Prufer
ak 6 7 7 8 8 8 8

7
6 4 5

1 2 3
Exemplu. Construiți graful conform codului Prufer
ak 6 6 7 7 7 8 8
Exemplu. Construiți graful conform codului Prufer
ak 6 6 7 7 7 8 8

7
6

1 2 5
4 3
Pentru un arbore putem stabili un nod special numit radăcină.
iar celelalte noduri se așeză pe nivele in funcție de depărtarea lor față
de rădăcină .

8 7

8
5
7 4 3
6 6

1 2 5
4 3 1 2
Nivelul 0
8

Nivelul 1
7
6
Nivelul 2
1 2 5
4 3
Rădăcină = Nod special care generează aşezarea unui arbore pe
niveluri; Această operaţie se efectuează în funcţie de lungimea lanţurilor
prin care celelalte noduri sunt legate de rădăcină.

Descendent = într-un arbore cu rădăcină nodul y este descendentul


nodului x dacă este situat pe un nivel mai mare decât nivelul lui x şi
există un lanţ care le uneşte şi nu trece prin rădăcină.

Descendent direct / fiu = într-un arbore cu rădăcină nodul y este fiul


(descendentul direct) nodului x dacă este situat pe nivelul imediat următor
nivelului lui x şi există muchie între x şi y.
Ascendent = într-un arbore cu rădăcină nodul x este ascendentul
nodului y dacă este situat pe un nivel mai mic decât nivelul lui y şi există
un lanţ care le uneşte şi nu trece prin rădăcină.

Ascendent direct / părinte = într-un arbore cu rădăcină nodul x este


părintele (ascendentul direct) nodului y dacă este situat pe nivelul imediat
superior (cu număr de ordine mai mic) nivelului lui y şi există muchie între
x şi y.

Fraţi = într-un arbore cu rădăcină nodul x este fratele nodului y dacă au


acelaşi părinte.

Frunză = într-un arbore cu rădăcină nodul x este frunză dacă nu are nici
un descendent direct
De exemplu. 7 este fiu pentru 8.
8 este tata pentru 7 și 6. 7 este tată pentru 4,3 și 5. 4,3 si 5 sunt frați.
1, 2, 3, 4, 5 –frunze.
7 și 8 sunt ascendenții pentru 4.
7 și 4 sunt descendenții lui 8.

7
6

1 2 5
4 3
2. 3 VECTOR DE TAȚI
Arborele se reprezinta sub forma unui vector t cu n componente, unde:
t[i]=k daca nodul i este descendent direct al nodului k. t[i]=0 daca nodul i
este radacina
Exemplu. 6 k 1 2 3 4 5 6 7 8
•6
t(k) 6 6 7 7 7 8 8 0
•7 8
•7
•7
•8
•8 7
6

1 2 5
4 3
VECTOR DE TAȚI
Exemplu. 6
•6
•7
•7 t(k) 6 6 7 7 7 8 8 0
•7
•8 8
•8

7
6

1 2 5
4 3
VECTOR DE TAȚI
Exemplu. Construiți arborele conform vectorului de tati6Construit
•6
•7 t(k) 6 6 7 7 7 8 0 7
•7
•7
•8
•8
VECTOR DE TAȚI
Exemplu. Construiți arborele conform vectorului de tati6Construit
•6
•7 t(k) 6 6 7 7 7 8 0 7
•7
•7
•8
•8 7

8
5
4 3
6

1 2

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