private void agregarRec(T dato, ArbolBinarioDeBusqueda<T> ab) { if (ab.getDatoRaiz().compareTo(dato) > 0) { // raiz es mayor que dato if (ab.getHijoIzquierdo().esVacio()) ab.getRaiz().setHijoIzquierdo(new NodoBinario<T>(dato)); else agregarRec(dato, ab.getHijoIzquierdo()); } else { if (ab.getHijoDerecho().esVacio()) ab.getRaiz().setHijoDerecho(new NodoBinario<T>(dato)); else agregarRec(dato, ab.getHijoDerecho()); } }
public String porNivel() { String resul = ""; ColaGenerica<ArbolBinarioDeBusqueda<T>> cola = new ColaGenerica<ArbolBinarioDeBusqueda<T>>(); cola.encolar(this); cola.encolar(null); while (!cola.esVacia()) { ArbolBinarioDeBusqueda<T> abb = cola.desencolar(); if (abb == null) { // termino nivel if (!cola.esVacia()) cola.encolar(null); resul += "\n"; } else { resul += abb.getDatoRaiz() + " "; if (!abb.getHijoIzquierdo().esVacio()) cola.encolar(abb.getHijoIzquierdo()); if (!abb.getHijoDerecho().esVacio()) cola.encolar(abb.getHijoDerecho()); } } return resul; }