public void recorridoPorNiveles() { Cola <ArbolBinario <T> > c = new Cola <ArbolBinario <T> >(); ArbolBinario <T> arbolAux; //encolamos Arbol c.encolar(this); while (c.esVacio()) { //desencolamos arbol arbolAux = c.desencolar(); //imprimimos datos de la raiz del arbol Console.Write(arbolAux.getDatoRaiz() + " "); //si tiene hijo izquierdo if (arbolAux.getHijoIzquierdo().esVacio()) { ; } //lo encolamos c.encolar(arbolAux.getHijoIzquierdo()); //si tiene hijo derecho if (!arbolAux.getHijoDerecho().esVacio()) { ; } //lo encolamos c.encolar(arbolAux.getHijoDerecho()); } }
public void recorridoEntreNiveles(int n, int m) { if (!this.esVacio()) { Cola <ArbolBinario <T> > c = new Cola <ArbolBinario <T> >(); //variable auxiliar ArbolBinario <T> arbolAux; //contador int contNivel = 0; //encolamos arbol c.encolar(this); //encolamos separador de niveles c.encolar(null); while (!c.esVacia()) { //desencolamos arbol arbolAux = c.desencolar(); if (arbolAux == null) { if (contNivel >= n && contNivel <= m) { Console.Write(arbolAux.getDatoRaiz() + " "); } } //si tiene hhijo izquierdo if (!arbolAux.getHijoIzquierdo().esVacio()) { //lo encolamos c.encolar(arbolAux.getHijoIzquierdo()); //si tiene hijo derecho if (!arbolAux.getHijoDerecho().esVacio()) { ; } //lo encolamos c.encolar(arbolAux.getHijoDerecho()); } else { contNivel++; if (!c.esVacio()) { ; } c.encolar(null); } } } }
public void recorridoPorNiveles() { Cola <ArbolBinario <T> > c = new Cola <ArbolBinario <T> >(); ArbolBinario <T> aux; c.encolar(this); while (!c.esVacia()) { aux = c.desencolar(); Console.Write(aux.getDatoRaiz() + " "); if (aux.getHijoIzquierdo() != null) { c.encolar(aux.getHijoIzquierdo()); } if (aux.getHijoDerecho() != null) { c.encolar(aux.getHijoDerecho()); } } }
public int retardoReenvio() { Cola <ArbolBinario <int> > c = new Cola <ArbolBinario <int> >(); ArbolBinario <int> aux; int retardoMax = 0; int retardoAux = 0; c.encolar(arbol); c.encolar(null); while (!c.esVacia()) { aux = c.desencolar(); if (aux == null) { retardoMax += retardoAux; retardoAux = 0; if (!c.esVacia()) { c.encolar(null); } } else { if (aux.getDatoRaiz() > retardoAux) { retardoAux = aux.getDatoRaiz(); } if (aux.getHijoIzquierdo() != null) { c.encolar(aux.getHijoIzquierdo()); } if (aux.getHijoDerecho() != null) { c.encolar(aux.getHijoDerecho()); } } } return(retardoMax); }
/*public int contarHojas() * { * Cola<ArbolBinario<T>> c = new Cola<ArbolBinario<T>>(); * ArbolBinario<T> aux; * int hojas = 0; * c.encolar(this); * while(!c.esVacia()) * { * aux = c.desencolar(); * if(aux.esHoja()) * { * hojas++; * } * if(aux.getHijoIzquierdo() != null) * { * c.encolar(aux.hijoIzquierdo); * } * if(aux.getHijoDerecho() != null) * { * c.encolar(aux.hijoDerecho); * } * } * return hojas; * }*/ public void recorridoEntreNiveles(int n, int m) { Cola <ArbolBinario <T> > c = new Cola <ArbolBinario <T> >(); ArbolBinario <T> aux; int nivel = 0; c.encolar(this); c.encolar(null); while (!c.esVacia()) { aux = c.desencolar(); if (aux == null) { nivel++; if (!c.esVacia()) { c.encolar(null); } } else { if (nivel >= n && nivel <= m) { Console.Write(aux.getDatoRaiz() + " "); } if (aux.getHijoIzquierdo() != null) { c.encolar(aux.hijoIzquierdo); } if (aux.getHijoDerecho() != null) { c.encolar(aux.hijoDerecho); } } } }
public bool incluye(T dato) { Cola <ArbolBinario <T> > c = new Cola <ArbolBinario <T> >(); ArbolBinario <T> aux; c.encolar(this); while (!c.esVacia()) { aux = c.desencolar(); if (aux.getDatoRaiz().Equals(dato)) { return(true); } if (aux.getHijoIzquierdo() != null) { c.encolar(aux.hijoIzquierdo); } if (aux.getHijoDerecho() != null) { c.encolar(aux.hijoDerecho); } } return(false); }