Questa è la funzione che utilizzio per il calcolo delle distanze, ossia per ogni nodo raggiungibile da quello da me prescelto per la visita, tramite questa funzione, mi calcolo la relativa distanza.

codice:
int distanza (int x)         //Funzione per il calcolo della distanza 
{
nodo davanti, dietro;
nodo w;
int dist[MAX_V],dista, stop = x, conta=-1, c=x, count=0;             
//dist[] è il vettore contenente la distanza dei nodi raggiungibili da s
                            
 davanti = dietro = NULL;
 visitato[x] = TRUE;
 addc(&davanti, &dietro, x);
 dist[x] = 0;

 while(davanti) { x = deletec(&davanti);
                  
                  if(stop != x) printf("\n\nNodo:%2d [ dist %d] ", x, dist[x]);   
//Se stop (il nodo di partenza) è diverso da quello 
                  for(w = grafo[x]; w; w = w->succ)                              
//in questione, allora ne scrivo la distanza che...
  	              if(!visitato[w->vertice]) { addc(&davanti, &dietro, w->vertice);  
                                              visitato[w->vertice] = TRUE;          
                                              dist[w->vertice] = dist[x] + 1;//incremento qui
                                              dista = dist[x];
                                              count+=1; 
                                                                
                                            }                                                 
}printf("\n\nIl numero dei nodi raggiungibili da %d e': %d", c, count ); 
}