Salve colleghi!

Vorrei qualche parere su un esercizio sui grafi... Se ho un grafo non orientato e volessi calcolarne il diametro (cioè due nodi del grafo che stanno più lontani possibili), potrei usare una BFS (breadth first search) modificata sfruttando l'array delle distanze ed usando una variabile MAX che si aggiorna all'interno del ciclo che mi scorre i vertici adiacenti finchè si otterrà la massima distanza possibile! Però mi rendo conto che, purchè sia affidabile come soluzione, il vertice sorgente deve trovarsi nella parte estrema del grafo... Che ne pensate? Qualcuno mi sa proporre una soluzione alternativa?