//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); } }
public void eliminarHijo(ArbolGeneral <T> hijo) { this.raiz.getHijos().Remove(hijo.getRaiz()); }
public void agregarHijo(ArbolGeneral <T> hijo) { this.raiz.getHijos().Add(hijo.getRaiz()); }