Salve, sto implementando l'algoritmo per la visita in ampiezza per i grafi. Ecco la mia funzione
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);
}
}
}
mi accorgo che va in un loop e non capisco il perchè. Qualcuno mi sa dare una mano nella risoluzione?
Grazie