Salve, sto implementando l'algoritmo per la visita in ampiezza per i grafi. Ecco la mia funzione
mi accorgo che va in un loop e non capisco il perchè. Qualcuno mi sa dare una mano nella risoluzione?codice:// VISITA IN AMPIEZZA template<class E, class P>void GrafoMat<E, P>::bfs(Nodo n) { ListaNodi adiacenti; ListaNodiPos p; CodaVT<E>coda(100); coda.inCoda(matrice[n.getId()].etichetta); while (!coda.codaVuota()){ scriviEtichetta(n.getId(),coda.leggiCoda()); coda.fuoriCoda(); cout<<"\n" <<matrice[n.getId()].etichetta; matrice[n.getId()].visitato=true; adiacenti = Adiacenti(n); p = adiacenti.begin(); while(!adiacenti.end(p)){ if((matrice[((*(adiacenti.read(p))).getId())].visitato ==(false))){ coda.inCoda(leggiEtichetta(((*(adiacenti.read(p))).getId()))); } p = adiacenti.next(p); } } }
Grazie

Rispondi quotando