Для восстановления кратчайших путей надо завести массив "предков" , в котором для каждой вершины хранить номер вершины, по которой мы попали в эту вершину.