Пример #1
0
        //modificado DLCS
        public int altura()
        {
            if (esHoja())
            {
                return(0);
            }
            else
            {
                int contador_de_hijos_horizontal = 0;
                int nivel_vertical = 0;
                int altura         = 1;
                List <ArbolGeneral <T> > Lista_de_hijos = getHijos();
                ArbolGeneral <T>         nivel_anterior = Lista_de_hijos[0];
                ArbolGeneral <T>         nodo_actual    = Lista_de_hijos[contador_de_hijos_horizontal];
                while (!nodo_actual.esHoja())
                {
                    Lista_de_hijos = getHijos();
                    nivel_vertical++;
                    nivel_anterior = nodo_actual;
                    nodo_actual    = Lista_de_hijos[contador_de_hijos_horizontal];

                    if (altura < nivel_vertical)
                    {
                        altura = nivel_vertical;
                    }

                    if (nodo_actual.esHoja())
                    {
                        nivel_vertical--;
                        contador_de_hijos_horizontal++;
                        if (contador_de_hijos_horizontal < nodo_actual.getHijos().Count)
                        {
                            Lista_de_hijos = getHijos();
                            nodo_actual    = Lista_de_hijos[contador_de_hijos_horizontal];
                        }
                        else
                        {
                            contador_de_hijos_horizontal = contador_de_hijos_horizontal - nivel_vertical;
                            nodo_actual = nivel_anterior;
                        }
                    }
                }

                return(altura);
            }
        }
Пример #2
0
 public void eliminarHijo(ArbolGeneral <T> hijo)
 {
     this.raiz.getHijos().Remove(hijo.getRaiz());
 }
Пример #3
0
 public void agregarHijo(ArbolGeneral <T> hijo)
 {
     this.raiz.getHijos().Add(hijo.getRaiz());
 }