Example #1
0
        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();
            }
        }
Example #2
0
        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);
        }