I grafi visita in ampiezza

In questo caso prima visitiamo tutti i vertici adiacenti a quello iniziale e successivamente prendiamo in esame i vertici adiacenti a questi (ci dobbiamo avvalere di una coda):


for(w=grafo[v]; w; w=w->link) if(!visitato[w->vertice]) { printf("visitato %d\n", w->vertice); add_queue(&davanti, &dietro, w->vertice); visitato[w->vertice]=1; } } }

Previous slide Next slide Back to the index View Graphic Version

Notes:

Ogni vertice viene posto nella coda una singola volta la complessità è quindi la somma su n vertici del numero di lati incidenti -> O(n) per le liste di adiacenza.
Rimane O(n2) per le matrici di adiacenza.
Dal punto di vista della complessità è equivalente alla precedente.