Fie V o multime nevida. Se numeste graf neorientat perechea G(V,U), unde U inclus VxV, a.. (x,x) nu
apartine lui U, cu x din V.
V multimea varfurilor (nodurilor)
U multimea muchiilor se noteaz cu paranteze patrate si nu conteaza ordinea. Se reprezinta grafic
prin linii.
5
4
Ex.
1
6
3
V={1,2,3,4,5}
U={[1,2];[2,4];[2,5];[3,4];[4,5]}
2 noduri x si y se numesc adiacente daca [x,y] apartine lui U. In acest caz muchia [x,y] se numeste
incident cu nodurile x si y.
Reprezentare in memorie
1) Matrice de adiacenta. Un graf cu n noduri va fi reprezentat printr-o matrice ptratic cu n linii si
coloane. A[x][y]=1, daca [x,y] sau [y,x] apartine lui U. Altfel A[x][y]=0.
Ex. pentru graful de mai sus
010000
100110
000100
011010
010100
000000
Obs. Matricea de adiacenta este simetrica fata de diagonala principala.
2) Liste de adiacenta. Pentru fiecare nod se enumera nodurile cu care este adiacent.
Ex. pentru graful de mai sus :
1: 2
2: 1, 4, 5
3: 4
4: 2, 3, 5
5: 2, 4
6: Numarul maxim de muchii ale unui graf: n(n-1)/2 (numarul de elemente de deasupra diagonalei
principale).
Numarul total de grafuri neorientate cu n noduri: 2n(n-1)/2
Def. Se numeste lant o succesiune de noduri x0, x1, x2, ..., xm astfel incat [xi-1,xi] apartine lui U, oricare ar fi
i de la 1 la n. Lungimea lantului este numarul de muchii (!) m in cazul acesta.
Ex. V={1,2,3,4,5}
U={(1,2);(2,1);(1,4);(3,2)}
Corespunzator notiunii de lant (graf neorientat) avem notiunea de drum. Ex. 3,2,1,2,1,4
Drum elementar / neelementar.
Ciclu circuit (elementar).
Componenta conexa componenta tare-conexa. Ex. {1,2} {5} {3} {4}
Grad interior numarul de arce care vin la un nod. Ex. d-(1)=1, d-(2)=2, d-(3)=0
Grad exterior numarul de arce care pleaca de la un nod. Ex. d+(1)=2, d+(2)=1, d+(4)=0
Graf neorientat
Graf orientat
Muchie linie
Arc sageata
Lant
Drum
Ciclu
Circuit
Grad
Grad interior / exterior
Componenta conexa
Componenta tare-conexa
Nr. max muchii: n(n-1)/2
Nr. max arce: n(n-1)
Nr. maxim grafuri: 2n(n-1)/2
Nr. maxim grafuri: 2n(n-1)
matricea de adiacenta: simetrica fata de diag. princ.
matricea de adiacenta: nesimetrica fata de diag. princ.
ARBORI
Def. Un graf neorientat conex si fara cicluri se numeste arbore.
Teorema. Un arbore cu n noduri are n-1 muchii.
Obs. Daca ar avea mai putine muchii n-ar mai conex si daca ar avea mai multe muchii ar avea cicluri.
1
Un arbore poate fi desenat ca un arbore cu radacina. Se alege un nod care va fi radacina si este asezat
cel mai sus - pe primul nivel (nivelul 0). Succesorii lui (nodurile care sunt adiacente cu el) sunt asezati pe
urmatorul nivel (1), iar succesorii acestora pe nivelul al 2-lea s.a.m.d.
Orice nod ar putea fi ales, pe rand, ca si radacina.
Ex. daca alegem radacina 5 arborele va arata astfel:
1
Nivelul maxim al unui arbore cu radacina se numeste inaltimea arborelui. In arborele de mai sus este 3.
Intr-un arbore cu radacina, nodurile care nu au succesori se numesc frunze. Ex. 1,3
Succesorii unui nod se numesc fii. Ex. fiii lui 4: 2 si 3; fiii lui 5: 4.
Modalitati de reprezentare in C++.
3) Matrice de adiacenta
4) Liste de adiacenta
5) Vector de tati: Pentru radacina valoarea elementului corespunzator in vector e 0, iar pt
celelalte noduri este nodul tata.
Ex. pentru arborele cu radacina de mai sus:
12345
(2,4,4,5,0)
Frunze noduri ce nu apar in vectorul de tati.