示例#1
0
 private void initialize_single_source(Grafo g, Vertice s)
 {
     foreach (KeyValuePair <string, Vertice> v in g.get_vertices())
     {
         v.Value.set_distancia(Double.MaxValue);
     }
     s.set_distancia(0);
 }
示例#2
0
        private void relax(Vertice u, Vertice v)
        {
            double distancia = u.get_distancia() + u.get_peso(v);

            if (v.get_distancia() > distancia)
            {
                v.set_distancia(distancia);
                v.set_vertice_caminho_anterior(u);
                //Console.WriteLine("Atualizei a distância " + distancia + " do vértice " + u.get_id()  + " para o vértice " + v.get_id());
            }
            else
            {
                //Console.WriteLine("NÃO atualizei a distância " + distancia + " do vértice " + u.get_id() + " para o vértice " + v.get_id());
            }
        }