コード例 #1
0
        private void seleccionKruskal(Arista candidato, List <string> componentes, ListaArista arbolRM)
        {
            int    borrar = -1;
            string origen, destino;

            origen  = candidato.getOrigin().getCity().getName();
            destino = candidato.getDestination().getCity().getName();
            for (int i = 0; i < componentes.Count; i++)
            {
                if (componentes[i].Contains(origen))
                {
                    for (int j = 0; j < componentes.Count; j++)
                    {
                        if (componentes[j].Contains(destino))
                        {
                            if (i != j)
                            {
                                borrar          = j;
                                componentes[i] += componentes[j];
                                arbolRM.Add(candidato);
                            }
                        }
                    }
                }
            }
            if (borrar > -1)
            {
                componentes.RemoveAt(borrar);
            }
        }
コード例 #2
0
 private void inicializaCandidatos(ListaArista candidatos, int option)
 {
     foreach (Node node in graph.getNodeList())
     {
         foreach (Adjacent ady in node.getAdjacentList())
         {
             Arista arista = new Arista();
             arista.setOrigin(node);
             arista.setDestination(ady.getNode());
             if (option == 1)
             {
                 arista.setCost(ady.getTime());
             }
             else if (option == 2)
             {
                 arista.setCost(ady.getCost());
             }
             candidatos.Add(arista);
         }
     }
 }
コード例 #3
0
 public int compareTo(Arista compare)
 {
     return(cost.CompareTo(compare.cost));
 }