Sólo comentar una cosa: es una pena que no puedan crearse directamente aristas bidireccionales. Si tienes que crear un grafo de ese tipo, tienes que añadir dos aristas por cada camino (u,v).
También me ha parecido ver que no calcula el diámetro de un grafo.
Por lo demás, estupendo.
NOTA: Después de consultar el manual, es evidente que no hay que definir aristas dobles. Con definir aristas simétricas, ya vale. ¡Gran programa!