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