예제 #1
0
 public CWarshall(CGrafo grafo)
 {
     G = grafo;
     n = grafo.getNumeroVertices();
     C = G.getMatrizAdyacencia().getMatriz();
     D = new bool[n, n];
 }
예제 #2
0
 public CWarshall(CGrafo grafo)
 {
     G = grafo;
     n = grafo.getNumeroVertices();
     C = G.getMatrizAdyacencia().getMatriz();
     D = new bool[n, n];
 }
예제 #3
0
        //Algoritmo de matrices de G y H
        public bool algoritmoMatrices()
        {
            bool isomorficos = false, continua = true;
            int  colG = 0, n = G.getListaAdyacencia().Count;

            CMatrizAdyacencia MG = G.getMatrizAdyacencia();
            CMatrizAdyacencia MH = new CMatrizAdyacencia(n);

            MH.setMatriz(copiaMatriz(H.getMatrizAdyacencia().getMatriz(), n));

            while (colG < n && continua)
            {
                if (encuentraSemejante(MG, ref MH, colG, n))
                {
                    if (matricesIguales(MG, MH, n))
                    {
                        isomorficos = true;
                        continua    = false;
                    }
                    else
                    {
                        colG++;
                    }
                }
                else
                {
                    continua = false;
                }
            }

            if (colG == n || !matricesIguales(MG, MH, n))//Si se recorrieron todas las columnas de G
            {
                isomorficos = false;
            }

            return(isomorficos);
        }
예제 #4
0
 private void BotonPG_Click(object sender, EventArgs e)
 {
     if (grafo_activo != null)
     {
         Propiedades p = new Propiedades(grafo_activo.getListaAdyacencia(), grafo_activo.getListaAristas(), grafo_activo.getMatrizAdyacencia(),
                                         grafo_activo.getMatrizIncidencia(), grafo_activo.getNumeroAristas(), grafo_activo.getNumeroVertices());
         p.ShowDialog();
     }
 }