


Tad ArbN<E>{ E obtener(); void setDato(E x); List<ArbN<E>> darHijos(); void enlazar(ArbN<E> x); boolean esHoja(); }
public class ArbNEntero implements ArbN<E>{ //**Atributos** private Integer dato; private List<ArbN<Integer >> hijos; //**Constructor** public ArbNEntero(Integer x) { dato = x; hijos = new ArrayList<<>>(); } //**Metodos interesantes, el resto omitidos** public void enlazar(ArbN<Integer> r) { hijos.add(r); } public boolean esHoja() { if(hijos.size() == 0) return true; else return false; } }

//*Metodo crear*public ArbN<Integer> crear(){ArbN<Integer> raiz = new ArbNEntero<>(1);ArbN<Integer> a10 = new ArbNEntero<>(10);ArbN<Integer> a20 = new ArbNEntero<>(20);ArbN<Integer> a30 = new ArbNEntero<>(30);ArbN<Integer> a11 = new ArbNEntero<>(11);ArbN<Integer> a14 = new ArbNEntero<>(14);ArbN<Integer> a17 = new ArbNEntero<>(17);ArbN<Integer> a33 = new ArbNEntero<>(33);ArbN<Integer> a39 = new ArbNEntero<>(39);//**Continua siguiente diapositiva**//
raiz.enlazar(a10);raiz.enlazar(a20);raiz.enlazar(a30);a10.enlazar(a11);a10.enlazar(a14);a10.enlazar(a17);a30.enlazar(a33);a30.enlazar(a39);}
public void impPreorden(ArbN<Integer> r){if(r!=null){System.out.println(""+ r.darElemento());for(int i=0;i<r.darHijos().size();i++){ArbN<Integer> hijo = r.darHijos().get(i);impPreorden(hijo);}}}
public void impPostorden(ArbN<Integer> r){if(r!=null){for(int i=0;i<r.darHijos().size();i++){ArbN<Integer> hijo = r.darHijos().get(i);impPostorden(hijo);}System.out.println(""+ r.darElemento());}}
public void impInorden(ArbN<Integer> r){if(r!=null){impInorden(r.darHijos().get(0));System.out.println(""+ r.darElemento());for(int i=1;i<r.darHijos().size();i++){ArbN<Integer> hijo = r.darHijos().get(i);impPostorden(hijo);}}}
public int darAltura(ArbN<Integer> r){if(r!=null)return r.darAltura();elsereturn 0;}//*Método polimórfico siguiente diapositiva*
public int darAltura(ArbN<Integer> r){if(r.esHoja())return 1;else{int maxAltura = 0;for(int i=0;i<r.darHijos().size();i++){ArbN<Integer> hijo = r.darHijos().get(i);int aux = hijo.darAltura();if(aux > maxAltura)maxAltura = aux;}return maxAltura + 1;}}
http://cupi2.uniandes.edu.co/sitio/images/cursosCupi2/datos/presentaciones/n16_arbolesnarios.pdf
http://www.it.uc3m.es/java/prog/units/arboles/guides/2/guide_es_solution.html