private void warshallToolStripMenuItem_Click(object sender, EventArgs e) { BanderaWarshall = true; Caminos.Clear(); Caminos.Add(new List <int>()); Warshall W = new Warshall(grafo.GeneraMatrizAdyacencia()); W.CreaCerraduraTransitivaWarshall(); for (int i = 0; i < grafo.Nodos.Count; i++) { for (int j = 0; j < grafo.Nodos.Count; j++) { if (W.MR[i, j] == 1) { if (grafo.BuscaRelacion(i + 1, j + 1) != null) { Caminos[0].Add(i + 1); Caminos[0].Add(j + 1); } } } } W.ImprimeCerraduraTransitiva(); if (Caminos[0].Count > 0) { PintaCamino(); } }
public List <Arco> GeneraRelacionesUnCamino(List <int> Camino, Grafo G) { List <Arco> AuxCaminos = new List <Arco>(); for (int j = 0; j < Camino.Count - 1; j++) { /*Arco arc = new Arco(); * arc.Origen = Camino[j]; * arc.Destino = Camino[j + 1];*/ Arco Relacion = G.BuscaRelacion(Camino[j], Camino[j + 1]); if (Relacion != null) { AuxCaminos.Add(Relacion); } } return(AuxCaminos); }