コード例 #1
0
 private void puntosDeArticulaciónToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (grafos != null && grafo_activo != null && grafo_activo.getNumeroAristas() > 0)
     {
         DPideVert pv = new DPideVert(grafo_activo.getNumeroVertices());
         pv.setTituloVentana("Puntos de articulación");
         pv.setLabelVertice("Vértice Inicial : ");
         if (pv.ShowDialog() == DialogResult.OK)
         {
             if (grafo_activo.existeVerticeConId(pv.getIdVert()))
             {
                 CRecorridoP  rp  = new CRecorridoP(grafo_activo, (TabPage)Pestanas.Controls[Pestanas.SelectedIndex]);
                 CNodoVertice cnv = grafo_activo.buscaNodoVertice(pv.getIdVert());
                 rp.RecorridoEnProfundidad(cnv);
                 rp.aplicaArbolAbarcador(grafo_activo.getTipo(), false);
                 rp.RecorridoEnProfundidadPtosArticulacion(cnv);
                 rp.sacaPuntosDeArticulacion(cnv);
                 grafo_activo.borraRP();
             }
             else
             {
                 MessageBox.Show(" El vértice especificado no existe!! ");
             }
         }
     }
 }
コード例 #2
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);*/
                    }
                }
            }
        }