public override List <Arista> Kruskal(ref List <List <string> > componentes, List <Arista> aristas) { List <Arista> ramas; Arista arista2; int i, j; i = 0; j = 0; arista2 = null; ramas = new List <Arista>(); foreach (Arista arista in aristas) { arista2 = arista.Arriba.buscaReciproca(arista.Id); //Busca la arista reciproca de esta if (!MetodosAuxiliares.mismoComponente(componentes, arista2.Arriba.Nombre, arista.Arriba.Nombre)) { //Se verifica que no esten en el mismo componente (Misma list de string) //ramas.Add(arista);//Se añadan ambas aristas ramas.Add(arista2); //Se añadan ambas aristas i = MetodosAuxiliares.indiceDeComponente(componentes, arista2.Arriba.Nombre); //Encuentran los indices de los componentes a mezclar j = MetodosAuxiliares.indiceDeComponente(componentes, arista.Arriba.Nombre); // MetodosAuxiliares.combinaComponentes(ref componentes, i, j); //Se convinan las listas de string } } return(ramas); }