PROGRAMA EN JAVA DE ÀRBOL BINARIO packagearbol; publicclassNodoArbol {//definicion de la clase nodo arbol NodoArbolnodoIzquierdo;//miembros de acceso del paquete

int datos;//se declara datos de tipo entero NodoArbolnodoDerecho;//miembros de acceso del paquete publicNodoArbol (intdatosNodo)//inicializar datos y hacer de este nodo un nodo hoja { datos = datosNodo;//datos es igual a datosNodo nodoIzquierdo = nodoDerecho = null;//indica que el nodo no tiene hijos } publicsynchronizedvoid insertar (intvalorInsertar)//localizar el punto de insercion e insertar nuevo nodo, ignorar valores duplicados { if (valorInsertar< datos){//insertar en subarbol izquierdo if (nodoIzquierdo == null)//insertar nuevoNodoÀrbol nodoIzquierdo = new NodoArbol (valorInsertar);//continuar recorriendo subarbol izquierdo else//sino nodoIzquierdo.insertar(valorInsertar); } elseif (valorInsertar> datos){//insertar en subarbol derecho if (nodoDerecho == null)//insertar nuevoNodoÀrbol nodoDerecho = new NodoArbol (valorInsertar); else//continuar recorriendo subàrbol derecho nodoDerecho.insertar(valorInsertar); }

//crear el nodo raizaqui else//sino raiz.//retornar o regresar .}//fin del metodo insertar }//fin de la clase NodoArbol packagearbol. } privatevoidayudantePreorden(NodoArbol nodo)//metodo recursivo para realizar recorrido preorden { if ( nodo == null)//si nodo es igual a null return.//llamar al metodo insertar } publicsynchronizedvoidrecorridoPreorden ()//comenzar el recorrido preorden { ayudantePreorden (raiz). publicclassArbol {//definicion de la clase Arbol privateNodoArbolraiz. publicArbol()//construir un objeto Àrbolvacio de enteros { raiz = null.insertar(valorInsertar).//raiz es igual a null } publicsynchronizedvoid insertar (intvalorInsertar)//insertar un nuevo nodo en el Àrbol de busqueda binaria { if (raiz == null)//si raiz es igual a null raiz = new NodoArbol (valorInsertar).

//recorrer subÀrbol izquierdo .datos + "").//recorrer subÀrbol derecho } publicsynchronizedvoidrecorridoInorden()//empezar recorrido inorden { ayudanteInorden (raiz).print(nodo.//retornar o regresar ayudantePostorden (nodo.print(nodo.System.//recorrer subÀrbol derecho } publicsynchronizedvoidrecorridoPostorden()//empezar recorrido postorden { ayudantePostorden (raiz).//mostrar datos del nodo ayudanteInorden (nodo.nodoDerecho).nodoIzquierdo).//mostrar datos del nodo ayudantePreorden (nodo.out.nodoDerecho).//recorrer subÀrbol izquierdo ayudantePreorden (nodo.nodoIzquierdo).datos + ""). } privatevoidayudanteInorden (NodoArbol nodo)//metodo recursivo para realizar recorrido inorden { if (nodo == null)//si nodo es igual a null return. } privatevoidayudantePostorden (NodoArbol nodo)//metodo recursivo para realizar recorrido postorden { if (nodo == null)//si nodo es igual a null return.out.//recorrer subÀrbol izquierdo System.//retornar o regresar ayudanteInorden (nodo.nodoIzquierdo).

println().//realizar recorrido preorden del Árbol System. System.recorridoPostorden().out.//imprime el recorrido Postorden arbol.print(nodo.//realizar recorrido Postorden del Árbol System.nodoDerecho).out.out.//realizar recorrido Inorden del Árbol System.println("\n\nRecorridoInorden").//recorrer subÀrbol derecho System.//imprime el recorrido preorden arbol.//manda imprimer el resultado para el usuario } }//fin de la clase PruebaÀrbol .//imprime el recorrido Inorden arbol.//manda imprimer el mensaje for (int i = 1.//se crea valor de tipo entero System.out. arbol.//se crea un nuevo arbol int valor.//mostrar datos del nodo } } packagearbol.println("\n\nRecorridoPostorden"). } System.insertar(valor).out.recorridoPreorden().ayudantePostorden (nodo.out.random()*100).print ("insertantdo los siguientes valores: "). i<10.datos + "").out.print (valor + "").recorridoInorden(). publicclassPruebaArbol {//incia que la clase PruebaÂrbol es publica publicstaticvoidmain (Stringargs [])//el metodomain hace que se pueda realizar la aplicaciòn { Arbolarbol = new Arbol(). i++){//insertar 10 enteros aleatorios del 0 al 99 en àrbol valor = (int)(Math.println("\n\nRecorridopreorden").

Sign up to vote on this title
UsefulNot useful