예제 #1
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);*/
                    }
                }
            }
        }