public List <Arista> newPrim(Vertice Origen) { Grafo P = new Grafo(); //List<Vertice> P = new List<Vertice>(); P.Add(Origen); List <Arista> Cand = new List <Arista>(); List <Arista> Prometedor = new List <Arista>(); Arista NoDirigido; foreach (Vertice V in this) { foreach (Arista A in V.getListaAristas()) { Cand.Add(A); NoDirigido = new Arista(A.getCosto(), A.getTiempo(), A.getOrigen(), A.getDestino()); Cand.Add(NoDirigido); } } Arista Ar; List <Arista> LA = new List <Arista>(); do { Ar = SeleccionPrim(Cand, P);//truena Prometedor.Add(Ar); Console.WriteLine("Works " + Ar.getOrigen().ToString()); if (BuscarVertice(Ar.getOrigen()) != -1) { Vertice Nuevo = this[this.BuscarVertice(Ar.getDestino())]; P.Add(Nuevo); } else { Vertice Nuevo = this[this.BuscarVertice(Ar.getOrigen())]; P.Add(Nuevo); } } while (P.Count <= this.Count - 1); return(Prometedor); }