Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




REPREZENTAREA SI TRAVERSAREA GRAFURILOR

c


REPREZENTAREA sI TRAVERSAREA GRAFURILOR

Continutul lucrarii



În lucrare sunt prezentate câteva notiuni legate de grafuri, modurile de reprezentare si traversare a lor.

Consideratii teoretice 525e42f

Notiuni de baza

Graful orientat sau digraful G =(V, E) este perechea formata din multimea V de vârfuri si multimea E V rV de arce. Un arc este o pereche ordonata de vârfuri (v, w), unde v este baza arcului, iar w este vârful arcului. In alti termeni se spune ca w este adiacent lui v.

O cale este o succesiune de vârfuri v[1],v[2],.,v[k], astfel ca exista arcele (v[1],v[2]), (v[2],v[3]),.,(v[k-1],v[k]) în multimea arcelor E. Lungimea caii este numarul de arce din cale. Prin conventie, calea de la un nod la el însusi are lungimea 0.

O cale este simpla, daca toate vârfurile, cu exceptia primului si ultimului sunt distincte între ele.

Un ciclu este o cale de la un vârf la el însusi.

Un graf orientat etichetat este un graf orientat în care fiecare arc si /sau vârf are o eticheta asociata, care poate fi un nume, un cost sau o valoare de un tip oarecare.

Un graf orientat este tare conex, daca oricare ar fi vârfurile v si w exista o cale de la v la w si una de la w la v.

Un graf G' =(V', E') este subgraf al lui G daca V' V si E' E. Se spune ca subgraful indus de V' V este G' =(V', E (V'rV')).

Un graf neorientat sau prescurtat graf G =(N, R) este perechea formata din multimea N de noduri si multimea R de muchii. O muchie este o pereche neordonata (v, w)=(w, v) de noduri.

Definitiile prezentate anterior ramân valabile si în cazul grafurilor neorientate.

Moduri de reprezentare

Atât grafurile orientate, cât si cele neorientate se reprezinta frecvent sub doua forme: matricea de adiacente si listele de adiacente.

Astfel, pentru graful orientat G =(V, E), unde V este multimea vârfurilor V =,matricea de adiacente A va fi definita astfel :


Matricea de adiacente etichetata A (sau matricea costurilor) va fi definita astfel :

Matricea de adiacente este simetrica pentru grafuri neorientate si nesimetrica pentru cele orientate.


Matricea de adiacente este utila când se testeaza frecvent prezenta sau absenta unui arc si este dezavantajoasa când numarul de arce este mult mai mic decât n x n.

Reprezentarea prin liste de adicente foloseste mai bine memoria, dar cautarea arcelor este mai greoaie. În aceasta reprezentare, pentru fiecare nod se pastreaza lista arcelor catre nodurile adiacente. Întregul graf poate fi reprezentat printr-un tablou indexat dupa noduri, fiecare intrare în tablou continând adresa listei nodurilor adiacente. Lista nodurilor adiacente poate fi dinamica sau statica. Pentru graful din fig.2.2.1, sunt prezentate:

matricea de adiacente în fig.2.2.2.;

lista de adiacente dinamica în fig.2.2.3.;

lista de adiacente statica în fig.2.2.4.


2.3.Explorarea în largime

Explorarea în largime consta în urmatoarele actiuni:

se trece într-o coada vida nodul de pornire;

se trece extrage din coada câte un nod care este prelucrat si se adauga toate nodurile adiacente lui neprelucrate. Se repeta acest pas pâna când coada devine vida.

Algoritmul este urmatorul:

void explorare_largime(int s)

/* s este nodul de pornire */

}

2.4.Explorarea in adâncime

La explorarea în adâncime se marcheaza vizitarea nodului initial, dupa care se viziteaza în adâncime, recursiv, fiecare nod adiacent. Dupa vizitarea tuturor nodurilor ce pot fi atinse din nodul de start, parcurgerea se considera încheiata. Daca ramân noduri nevizitate, se alege un nou nod si se repeta procedeul de mai sus.

Algoritmul este urmatorul:

void explorare_adancime(int s)

/* s este nodul de pornire* /

else pop(ST); /* se sterge nodul v din vârful stivei ST */

}

3.Mersul lucrarii

3.1. Pentru un graf orientat G =(V, E) si V' V sa se gaseasca subgraful indus G' =(V', E').Elementele din V si V' se citesc.

3.2. Sa se scrie câte o functie de construire pentru un graf G =(V, E), conform celor 3 reprezentari posibile.

3.3. Pentru un graf reprezentat prin matricea de adiacente, sa se implementeze algoritmii de traversare prezentati în paragrafele 2.3. si 2.4.

3.4. Sa se scrie o functie care sa verifice daca exista o cale între doua noduri date (v, w) ale unui graf orientat G =(V, E).

3.5. Pentru un graf neorientat dat G =(N, R), sa se scrie o functie care sa verifice daca graful este conex sau nu.



Document Info


Accesari: 2141
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )