コード例 #1
0
        private string DamePrimpos(Arbol.Nodo cabeza)
        {
            String cadena = "";
            int    dato   = 0;
            int    inf    = 0;

            for (int i = 0; i < cabeza.PrimeraPos.GetLongLength(0); i++)
            {
                if (cadena == "")
                {
                    cadena = cadena + "{" + cabeza.PrimeraPos[i].ToString();
                }
                else
                {
                    cadena = cadena + "," + cabeza.PrimeraPos[i].ToString();
                }
                dato = i + 1;
                inf  = (int)cabeza.PrimeraPos.GetLongLength(0);
            }
            if (dato == 1 || dato == inf)
            {
                cadena = cadena + "}";
            }

            return(cadena);
        }
コード例 #2
0
        private void dibuja(Arbol.Nodo cabeza, Graphics dib)
        {
            if (cabeza.Padre != null)
            {
                dib.DrawLine(lapiz, cabeza.X + 20, cabeza.Y + 20, cabeza.Padre.X + 20, cabeza.Padre.Y + 20);
            }
            dib.DrawEllipse(pincel, cabeza.X, cabeza.Y, 35, 35);
            dib.FillEllipse(relleno, cabeza.X, cabeza.Y, 34, 34);
            dib.DrawString(cabeza.Id.ToString(), fuente, coloranul, cabeza.X, cabeza.Y);
            dib.DrawString(cabeza.EsAnulable.ToString(), fuente2, coloranul, cabeza.X, cabeza.Y + 35);
            string pripos = DamePrimpos(cabeza);
            string ultpos = DameUltipos(cabeza);

            dib.DrawString(pripos, fuente2, colorprimpos, cabeza.X - 50, cabeza.Y + 10);
            dib.DrawString(ultpos, fuente2, colorultipos, cabeza.X + 38, cabeza.Y + 10);
        }
コード例 #3
0
        private void LlenaArbol(Arbol.Nodo cabeza)
        {
            if (ClientSize.Width > pBArbol.Width && ClientSize.Height > pBArbol.Height)
            {
                dibujo = new Bitmap(ClientSize.Width, pBArbol.Height);
            }
            else
            {
                dibujo = new Bitmap(pBArbol.Width, pBArbol.Height);
            }

            Graphics g = Graphics.FromImage(dibujo);

            PintaArbol(cabeza, g);
            g.DrawImage(dibujo, 0, 0);
            pBArbol.Image = dibujo;
        }
コード例 #4
0
 private void PintaArbol(Arbol.Nodo cabeza, Graphics dib)
 {
     if (cabeza == null)
     {
         return;
     }
     if (cabeza.Padre == null)
     {
         cabeza.X        = (pBArbol.Width / 2) + 350;
         cabeza.Y        = 30;
         cabeza.visitado = true;
     }
     if (cabeza.Padre != null)
     {
         if (cabeza.visitado != true)
         {
             cabeza.X        = cabeza.Padre.X - 75;
             cabeza.Y        = cabeza.Padre.Y + 50;
             cabeza.visitado = true;
         }
         if (cabeza.Id == '#')
         {
             cabeza.X = cabeza.Padre.X + 75;
         }
     }
     PintaArbol(cabeza.Izquierdo, dib);
     if (cabeza.Derecho != null)
     {
         if (cabeza.Padre != null)
         {
             cabeza.Derecho.X        = cabeza.X + 75;
             cabeza.Derecho.Y        = cabeza.Y + 50;
             cabeza.Derecho.visitado = true;
         }
         PintaArbol(cabeza.Derecho, dib);
     }
     dibuja(cabeza, dib);
 }