Está en la página 1de 1

Para hacer un recorrido en anchura, la idea es ir guardando en una cola los hijos del nodo que se estn visitando

y el siguiente a visitar es el prximo nodo de la cola. El cdigo se ha comentando para que resulte ms sencillo entender el ejercicio.
public void amplitud(NodoArbol a) //SE RECIBE LA RAIZ DEL ARBOL { Cola cola, colaAux; //DEFINICIN DE 2 VARIABLES DE TIPO COLA NodoArbol aux; //DEFINICIN AUX DE TIPO NODOARBOL if (a != null) //SI EL RBOL CONTIENE NODOS... { cola=new Cola(); //SE INSTANCIA EL OBJETO COLA colaAux=new Cola(); //SE INSTANCIA EL OBJETO COLAAUX cola.push(a); //SE INSERTA EL NODOARBOL "A" (RAIZ) COMO PRIMER NODO EN LA COLA while (cola.colavacia()!=1) //MIENTRAS HAYAN ELEMENTOS EN LA COLA... { colaAux.push(aux=cola.pop()); /*EL ELEMENTO EXTRAIDO DE LA COLA PRINCIPAL ES ASIGNADO A AUX Y A SU VEZ INSERTADO EN LA COLA AUXILIAR*/ if (aux.izq != null) //SI EL HIJO IZQUIERDO DEL NODO ACTUAL EXISTE { cola.push(aux.izq); //SE INSERTA ESE HIJO COMO ELEMENTO SIGUIENTE EN LA COLA } if (aux.der!= null) //SI EL HIJO DERECHO DEL NODO ACTUAL EXISTE { cola.push(aux.der); //SE INSERTA ESE HIJO COMO ELEMENTO SIGUIENTE EN LA COLA } } colaAux.print(); //POR LTIMO SE IMPRIME LA COLA AUXILIAR } }

También podría gustarte