Sunteți pe pagina 1din 4

PARCURGEREA GRAFURILOR 

Fie G=(V, M) graf neorientat, unde V={x1, x2,..., xn } şi M={m1, m 2,..., mp}.
Prin parcurgerea grafului G se înșelege vizitarea, într-un mod sistematic, a tuturor nodurilor,
plecând de la un nod pl (nod de plecare) mergând pe muchii incidente două câte două.

Un graf poate fi parcurs în următoarele două moduri:


- în lățime (BF = Breadth First)
- în adâncime (DF = Depth First) 
PARCURGEREA ÎN LĂȚIME (BF- BREADTH FIRST)
Fie G=(V, M) un graf neorientat cu n vârfuri (V={1,2, ..., n}) şi m muchii.
Algoritmul-de parcurgere a grafului în lățime, folosind o coadă, este:
- inițial toate nodurile se consideră nevizitate;
- se citeşte nodul de plecare pl, care se consideră acum vizitat, şi se trece in coadă pe ,prima
poziție;
- se trec in coadă toate nodurile nevizitate până in prezent şi sunt adiacente cu nodul de plecare
(odată cu trecerea lor in coadă se marchează ca fiind vizitate);
- se trece la următorul element din coadă, care ia rolul nodului de plecare, şi se reia pasul
anterior;
................................
- algoritmul se termină după ce sunt parcurse toate elementele din coadă.
• Exemplul 1. Fie graful reprezentat grafic ca în figura de mai jos:

Observație: În continuare, un nod se consideră vizitat când este încercuit:


şi cu p şi u notăm indicele primului, respectiv ultimului element din coadă.
Parcurgerea in lățime, a grafului de mai sus, presupune parcurgerea etapelor:
* La început, nici un nod nu este vizitat (graful arată ca in figura inițială, adică nici un nod nu
este încercuit).
* Se pleacă de la nodul 1, care se trece in coadă pe prima poziție şi se marchează ca fiind vizitat.  
                                                         { u=u+1;
                                                  coada[u]=j;
                                                  vizitat[j]=1 ;}        
          if (i<=u) parc_latime(i+1);}
PARCURGEREA IN ADÂNCIME  (DF-DEPTH FIRST)
Fie G =(V, M) un graf neorientat cu n vârfuri (V={1 ,2, .... n} ) şi m muchii.
Algoritmul recursiv de parcurgere a grafului in adâncime este implementat în funcția
parc_adancime, caracterizată astfel:
- are un parametru formal (nodul curent, asupra căruia se aplică):
- procedează astfel:
- afişează nodul asupra căruia se aplică şi-l marchează ca fiind vizitat;
- pentru fiecare vecin nevizitat de-al nod nodului curent
- se autoapelează asupra sa

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