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!! "); } } } }
//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);*/ } } } }