Example #1
0
        public int getYde(CNodoVertice cnv)
        {
            List <int> yes  = new List <int>();
            int        ymin = -1;

            foreach (CArista a in arcos_arbol)
            {
                CVertice or = a.getVOrigen(), de = a.getVDestino();
                int      num_or = or.getNumero(), num_de = de.getNumero();
                if (or.getId() == cnv.getVertice().getId() && num_or < num_de)
                {
                    if (de.getBajo() != 0)
                    {
                        yes.Add(de.getBajo());
                    }
                }
                else if (de.getId() == cnv.getVertice().getId() && num_de < num_or)
                {
                    if (or.getBajo() != 0)
                    {
                        yes.Add(or.getBajo());
                    }
                }

                if (yes.Count != 0)
                {
                    yes.Sort();
                    ymin = yes[0];
                }
            }

            return(ymin);
        }
Example #2
0
 public void enlistaArcosArbol(CVertice origen, CVertice destino)
 {
     foreach (CArista a in G.getListaAristas())
     {
         if (G.getTipo() == DIRIGIDO)
         {
             if (a.getVOrigen().getId() == origen.getId() && a.getVDestino().getId() == destino.getId())
             {
                 arcos_arbol.Add(a);
             }
         }
         else
         {
             if ((a.getVOrigen().getId() == origen.getId() && a.getVDestino().getId() == destino.getId()) ||
                 a.getVOrigen().getId() == destino.getId() && a.getVDestino().getId() == origen.getId())
             {
                 arcos_arbol.Add(a);
             }
         }
     }
 }
Example #3
0
        public bool esElUltimoEnPintar(CVertice v)
        {
            foreach (CNodoVertice cnv in G.getListaAdyacencia())
            {
                if (cnv.getVertice().getId() != v.getId() && !v.estaPintado())
                {
                    return(false);
                }
            }

            return(true);
        }
Example #4
0
 public bool tieneHijosConBajoMayorOIgualAlNumDe(CNodoVertice cnv)
 {
     foreach (CArista a in arcos_arbol)
     {
         CVertice or = a.getVOrigen(), de = a.getVDestino();
         int      num_or = or.getNumero(), num_de = de.getNumero();
         if (or.getId() == cnv.getVertice().getId() && num_or < num_de && de.getBajo() >= cnv.getVertice().getNumero())
         {
             return(true);
         }
         else if (de.getId() == cnv.getVertice().getId() && num_de < num_or && or.getBajo() >= cnv.getVertice().getNumero())
         {
             return(true);
         }
     }
     return(false);
 }
Example #5
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]);
         }
     }
 }
Example #6
0
        public bool laRaizTiene2OMasHijos(CNodoVertice cnv_ini)
        {
            int num_hijos = 0;

            foreach (CArista a in arcos_arbol)
            {
                CVertice or = a.getVOrigen(), de = a.getVDestino();
                int      num_or = or.getNumero(), num_de = de.getNumero();
                if ((or.getId() == cnv_ini.getVertice().getId() && num_or < num_de) ||
                    (de.getId() == cnv_ini.getVertice().getId() && num_de < num_or))
                {
                    num_hijos++;
                }
            }

            if (num_hijos >= 2)
            {
                return(true);
            }

            return(false);
        }
Example #7
0
 public void enlistaArcosArbol(CVertice origen, CVertice destino)
 {
     foreach (CArista a in G.getListaAristas())
     {
         if (G.getTipo() == DIRIGIDO)
         {
             if (a.getVOrigen().getId() == origen.getId() && a.getVDestino().getId() == destino.getId())
                 arcos_arbol.Add(a);
         }
         else
         {
             if ((a.getVOrigen().getId() == origen.getId() && a.getVDestino().getId() == destino.getId()) ||
                 a.getVOrigen().getId() == destino.getId() && a.getVDestino().getId() == origen.getId())
             {
                 arcos_arbol.Add(a);
             }
         }
     }
 }
Example #8
0
        public bool esElUltimoEnPintar(CVertice v)
        {
            foreach (CNodoVertice cnv in G.getListaAdyacencia())
            {
                if (cnv.getVertice().getId() != v.getId() && !v.estaPintado())
                    return false;
            }

            return true;
        }