Ciao a tutti,
qualcuno saprebbe suggerirmi qualcosa oppure indicarmi dove trovare materiale, sull'implementazione in C dell'algoritmo di visita bfs (visita in ampiezza) di un grafo memorizzato tramite matrice di adiacenza?
Grazie.
Ciao a tutti,
qualcuno saprebbe suggerirmi qualcosa oppure indicarmi dove trovare materiale, sull'implementazione in C dell'algoritmo di visita bfs (visita in ampiezza) di un grafo memorizzato tramite matrice di adiacenza?
Grazie.
codice:void Ampiezza(int v) { /*Questa visita usa come struttura d'appoggio una coda anzichè uno stack.Si comincia visitando il vertice di partenza v e tutti i vertici ad esso adiacenti.Si prosegue visitando tutti i vertici non visitati adiacenti al primo vertice della lista di adiacenza di v,poi quelli adiacenti al secondo...Per far ciò ogni volta che si visita un vertice lo si pone in una coda e dopo aver completato la sua lista di adiacenza si estrae un nuovo vertice dalla coda,visitando anche per esso tutti i vertici adiacenti e così via fino a che la coda non si svuota.*/ pEle davanti,dietro; pNode w; davanti=dietro=NULL;//inizializza la coda printf("%d ",v);//stampa il vertice di partenza Visitato[v]=TRUE; //segna come visitato il vertice di partenza AddCoda(&davanti,&dietro,v); //aggiunge alla coda il vertice di partenza while(davanti)//finchè la coda non è vuota { v=DelCoda(&davanti,&dietro); //estrae un vertice dalla coda for(w=Grafo[v];w;w=w->next) //visita tutti i vertici adiacenti al vertice corrente... if(!Visitato[w->vertice]) { printf("%d ",w->vertice); Visitato[w->vertice]=TRUE; AddCoda(&davanti,&dietro,w->vertice);//...inserendoli nella coda se non visitati } } }
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)
Si, mi servirebbe il codice, ma qualsiasi suggerimento è ben accetto.
Il codice postato sopra si riferisce ad un grafo realizzato con liste di adiacenza: ciò che cerco è relativo invece ad un grafo realizzato tramite matrice di adiacenza.
Hai ragione ho letto male.Originariamente inviato da FastMagister
Si, mi servirebbe il codice, ma qualsiasi suggerimento è ben accetto.
Il codice postato sopra si riferisce ad un grafo realizzato con liste di adiacenza: ciò che cerco è relativo invece ad un grafo realizzato tramite matrice di adiacenza.
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)