Пример #1
0
 private void kruskalToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (grafos != null && grafo_activo != null && grafo_activo.getTipo() == NO_DIRIGIDO && grafo_activo.getNumeroAristas() > 0)
     {
         if (!grafo_activo.tienePeso())
         {
             DAddPeso dap = new DAddPeso(grafo_activo.getListaAristas());
             grafo_activo.showHideIdAristas(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             if (dap.ShowDialog() == DialogResult.OK)
             {
                 grafo_activo.setPesos(dap.getPesos());
                 grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 CKruskal k = new CKruskal(grafo_activo, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 k.kruskal();
                 grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             }
             else
             {
                 grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             }
         }
         else
         {
             grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             CKruskal k = new CKruskal(grafo_activo, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             k.kruskal();
             grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
         }
     }
 }
Пример #2
0
        private void cerraduraTransitivaWarshallToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (grafos != null && grafo_activo != null && grafo_activo.getTipo() == DIRIGIDO && grafo_activo.getNumeroAristas() > 0)
            {
                if (!grafo_activo.tienePeso())
                {
                    DAddPeso dap = new DAddPeso(grafo_activo.getListaAristas());
                    grafo_activo.showHideIdAristas(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    if (dap.ShowDialog() == DialogResult.OK)
                    {
                        grafo_activo.setPesos(dap.getPesos());
                        grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                        grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                        CWarshall cw  = new CWarshall(grafo_activo);
                        string    cad = "";
                        if (cw.tieneCerraduraTransitiva())
                        {
                            cad = " SI";
                        }
                        else
                        {
                            cad = " NO";
                        }

                        MessageBox.Show(cad + " existe cerradura transitiva para el grafo " + grafo_activo.getId().ToString() + "!!     ", "Algoritmo de Warshall", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    }
                    else
                    {
                        grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    }
                }
                else
                {
                    grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    CWarshall cw  = new CWarshall(grafo_activo);
                    string    cad = "";
                    if (cw.tieneCerraduraTransitiva())
                    {
                        cad = " SI";
                    }
                    else
                    {
                        cad = " NO";
                    }

                    MessageBox.Show(cad + " existe cerradura transitiva para el grafo " + grafo_activo.getId().ToString() + "!!     ", "Algoritmo de Warshall", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                }
            }
        }
Пример #3
0
 private void obtenerCentroToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (grafos != null && grafo_activo != null && grafo_activo.getTipo() == DIRIGIDO && grafo_activo.getNumeroAristas() > 0)
     {
         if (!grafo_activo.tienePeso())
         {
             DAddPeso dap = new DAddPeso(grafo_activo.getListaAristas());
             grafo_activo.showHideIdAristas(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             if (dap.ShowDialog() == DialogResult.OK)
             {
                 grafo_activo.setPesos(dap.getPesos());
                 grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 CFloyd cf = new CFloyd(grafo_activo);
                 cf.Floyd();
                 CVertice centro = cf.dameCentro().getVertice();
                 centro.setRelleno(Color.SpringGreen.ToArgb());
                 centro.dibujate(Graphics.FromImage(grafo_activo.getBMP()), grafo_activo.getBMP(), (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 MessageBox.Show(" Vértice Central : " + centro.getId().ToString() + ".     ", "Centro del Grafo " + grafo_activo.getId().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
                 centro.borrate(Graphics.FromImage(grafo_activo.getBMP()), grafo_activo.getBMP(), (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 centro.setRelleno(Color.LightGoldenrodYellow.ToArgb());
                 centro.dibujate(Graphics.FromImage(grafo_activo.getBMP()), grafo_activo.getBMP(), (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             }
             else
             {
                 grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             }
         }
         else
         {
             grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             CFloyd cf = new CFloyd(grafo_activo);
             cf.Floyd();
             CVertice centro = cf.dameCentro().getVertice();
             centro.setRelleno(Color.SpringGreen.ToArgb());
             centro.dibujate(Graphics.FromImage(grafo_activo.getBMP()), grafo_activo.getBMP(), (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             MessageBox.Show(" Vértice Central : " + centro.getId().ToString() + ".     ", "Centro del Grafo " + grafo_activo.getId().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
             centro.borrate(Graphics.FromImage(grafo_activo.getBMP()), grafo_activo.getBMP(), (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             centro.setRelleno(Color.LightGoldenrodYellow.ToArgb());
             centro.dibujate(Graphics.FromImage(grafo_activo.getBMP()), grafo_activo.getBMP(), (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
         }
     }
 }
Пример #4
0
        //Submenu Algoritmos para Digrafos
        private void dijkstraToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (grafos != null && grafo_activo != null && grafo_activo.getTipo() == DIRIGIDO && grafo_activo.getNumeroAristas() > 0)
            {
                if (!grafo_activo.tienePeso())
                {
                    DAddPeso dap = new DAddPeso(grafo_activo.getListaAristas());
                    grafo_activo.showHideIdAristas(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    if (dap.ShowDialog() == DialogResult.OK)
                    {
                        grafo_activo.setPesos(dap.getPesos());
                        grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                        grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                        DPideVert pdv = new DPideVert(grafo_activo.getNumeroVertices());
                        if (pdv.ShowDialog() == DialogResult.OK)
                        {
                            CDijkstra djk = new CDijkstra(grafo_activo);
                            djk.calculaCaminoMasCorto(grafo_activo.buscaNodoVertice(pdv.getIdVert()));
                            grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);

                            /*foreach (CArista a in grafo_activo.getListaAristas())
                             *  a.setPeso(0);*/
                        }
                    }
                    else
                    {
                        grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    }
                }
                else
                {
                    grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                    DPideVert pdv = new DPideVert(grafo_activo.getNumeroVertices());
                    if (pdv.ShowDialog() == DialogResult.OK)
                    {
                        CDijkstra djk = new CDijkstra(grafo_activo);
                        djk.calculaCaminoMasCorto(grafo_activo.buscaNodoVertice(pdv.getIdVert()));
                        grafo_activo.showHidePesos(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);

                        /*foreach (CArista a in grafo_activo.getListaAristas())
                         *  a.setPeso(0);*/
                    }
                }
            }
        }
Пример #5
0
 private void BAddPeso_Click(object sender, EventArgs e)
 {
     if (grafos != null && grafo_activo != null && grafo_activo.getNumeroAristas() > 0)
     {
         DAddPeso dap = new DAddPeso(grafo_activo.getListaAristas());
         grafo_activo.showHideIdAristas(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
         if (dap.ShowDialog() == DialogResult.OK)
         {
             grafo_activo.setPesos(dap.getPesos());
             grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
             grafo_activo.showHidePesos(true, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
         }
         else
         {
             grafo_activo.showHideIdAristas(false, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
         }
     }
 }