280 likes | 381 Views
Metode de parcurgere a grafurilor. Depth First(DF). Algoritm de parcurgere :. Se alege un varf de start.
E N D
Metode de parcurgere a grafurilor Depth First(DF)
Algoritm de parcurgere: • Se alege un varf de start. • Pentrufiecarevarfcurent(varf de start) se algeprimuladiacentiar in cazul in care nu existaadiacenti se realizeazaunulsaumai multi pasipana la primul nod unde se poaterealizanouaalegere. • Oricevarf ales devinevarfcurent.
Coada: 9 Nodul de la care se incepeparcurgereaeste 9 9 6 Viz : 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 1 7 2 1. Se alegevarful de start: 9 2. Se marcheaza in viz cu 13. Se adaugaprimuladiacent al lui 9 in coada 5 4 3 8
Coada: 9:3 Viz : 0 0 1 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 9 2. Se marcheaza 3 in viz cu 13. Se adauga in coada 3 7 2 5 4 3 8
Coada: 9:3,1 Viz : 10 1 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 32. Se marcheaza 1 in viz cu 13. Se adauga in coada 1 7 2 5 4 3 8
Coada: 9:3,1,2 Viz : 11 1 0 0 1 0 0 1 123 4 5 6 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 12. Se marcheaza 2 in viz cu 13. Se adauga in coada 2 7 2 5 4 3 8
Coada: 9:3,1,2 Viz : 11 1 0 0 1 0 0 1 123 4 5 6 7 8 9 9 6 1 1. Se observa ca 2 nu mai are adiacentinemarcati . 2. se revine la nodul 1 7 2 5 4 3 8
Coada: 9:3,1,2,6 Viz : 11 1 0 0 10 0 1 123 4 5 6 7 8 9 9 6 1 Se alegeprimuladiacent al lui 1. Se marcheaza 6 in viz cu 1; Se adauga in coada 6 7 2 5 4 3 8
Coada: 9:3,1,2,6,5 Viz : 11 1 0 110 0 1 123 4 5 6 7 8 9 9 6 1 Se alegeprimuladiacent al lui 6. Se marcheaza 5 in viz cu 1. Se adauga in coada 5 7 2 5 4 3 8
Coada: 9:3,1,2,6,5,4 Viz : 11 0 1 110 0 1 1234 5 6 7 8 9 9 6 1 Se alegeprimuladiacent al lui 5. Se marcheaza 4 in viz cu 1. Se adauga in coada 4. 7 2 5 4 3 8
Coada: 9:3,1,2,6,5,4,7 Viz : 11 1 1111 0 1 1234 5 67 8 9 9 6 1 Se alegeprimuladiacent al lui 4. Se marcheaza 7 in viz cu 1. Se adauga in coada 7. 7 2 5 4 3 8
Coada: 9:3,1,2,6,5,4,7,8 Viz : 11 1 111 1 0 1 1234 5 6789 9 6 1 Se observa ca 7 nu mai are adiacentinemarcati; 2. Se revine la nodul 4; 7 2 5 4 3 8
Coada: 9:3,1,2,6,5,4,7,8 Viz : 11 1 1111 1 1 1234 5 6789 9 6 1 Se alegeprimuladiacent al lui 4. Se marcheaza 8 in viz cu 1. Se adauga in coada 8. 7 2 5 4 3 8
Coada: 9:3,1,2,6,4,7,8 Viz : 11 1 1111 1 1 1234 5 6789 9 6 1 Se alegeprimuladiacent al lui 8. Se observa ca 8 sitoatenodurileanterioarelui nu mai au adiacentinevizitati. DF-ul s-a incheiat. 7 2 5 4 3 8
Coada: 4 Nodul de la care se incepeparcurgereaeste 4 9 6 1 Viz : 0 0 0 10 0 0 0 0 1 2 34 5 6 7 8 9 7 2 1. Se alegevarful de start: 4 2. Se marcheaza in viz cu 13. Se adaugaprimuladiacent al lui 4 in coada 5 4 3 8
Coada: 4:5 Viz : 0 0 011 0 0 0 0 1 2 34 56 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 4 2. Se marcheaza 5 in viz cu 13. Se adauga in coada 5 7 2 5 4 3 8
Coada: 4:5,6 Viz : 0 0 0111 0 0 0 1 2 3456 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 5 2. Se marcheaza 6 in viz cu 13. Se adauga in coada 6 7 2 5 4 3 8
Coada: 4:5,6,1 Viz : 1 0 0111 0 0 0 1 2 3456 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 6 2. Se marcheaza 1 in viz cu 13. Se adauga in coada 1 7 2 5 4 3 8
Coada: 4:5,6,1,2 Viz : 11011 1 0 0 0 123456 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 1 2. Se marcheaza 2 in viz cu 13. Se adauga in coada 2 7 2 5 4 3 8
Coada: 4:5,6,1,2,3 Viz : 11111 1 0 0 0 123456 7 8 9 9 6 1 1. Se alegeprimuladiacent al lui 2 2. Se marcheaza 3 in viz cu 13. Se adauga in coada 3 7 2 5 4 3 8
Coada: 4:5,6,1,2,3,8 Viz : 11111 1 0 10 123456 7 89 9 6 1 1. Se alegeprimuladiacent al lui 3 2. Se marcheaza 8 in viz cu 13. Se adauga in coada 8 7 2 5 4 3 8
Coada: 4:5,6,1,2,3 Viz : 11111 1 0 0 0 123456 7 8 9 9 6 1 1. Se observaca 8 nu mai are adiacentineamarcati.2. Se revine la nodul 3 7 2 5 4 3 8
Coada: 4:5,6,1,2,3,8,9 Viz : 11111 1 0 11 123456 7 89 9 6 1 1. Se alegeprimuladiacent al lui 3 2. Se marcheaza 9 in viz cu 13. Se adauga in coada 9 7 2 5 4 3 8
Coada: 4:5,6,1,2,3,8,9,7 Viz : 11111 1 111 1234567 89 9 6 1 1. Se alegeprimuladiacent al lui 9 2. Se marcheaza 7 in viz cu 13. Se adauga in coada 7 7 2 5 4 3 8
Coada: 4:5,6,1,2,3,8,9,7 Viz : 11111 1 111 123456789 9 6 1 1. Se alegeprimuladiacent al lui 7 2. Se observa ca 7 sitoatenodurileanterioarelui nu mai au adiacentinevizitati.3. DF-ulsaincheiat. 7 2 5 4 3 8
ALGORiTM: intviz[100]; void df(int x) { inti; cout<<x<<":"<<" "; viz[x]=1; for(i=1;i<=n;i++) if(a[x][i]==1&&viz[i]==0) df(i); }
PROF. COORDONATOR: GAVRIL FLORIN Realizar: CATALIN MARTISCA