Sunteți pe pagina 1din 4

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 nuevoNodorbol nodoIzquierdo = new NodoArbol (valorInsertar);//continuar recorriendo subarbol izquierdo else//sino nodoIzquierdo.insertar(valorInsertar); } elseif (valorInsertar> datos){//insertar en subarbol derecho if (nodoDerecho == null)//insertar nuevoNodorbol nodoDerecho = new NodoArbol (valorInsertar); else//continuar recorriendo subrbol derecho nodoDerecho.insertar(valorInsertar); }

}//fin del metodo insertar }//fin de la clase NodoArbol packagearbol; publicclassArbol {//definicion de la clase Arbol privateNodoArbolraiz; publicArbol()//construir un objeto rbolvacio de enteros { raiz = null;//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);//crear el nodo raizaqui else//sino raiz.insertar(valorInsertar);//llamar al metodo insertar } publicsynchronizedvoidrecorridoPreorden ()//comenzar el recorrido preorden { ayudantePreorden (raiz); } privatevoidayudantePreorden(NodoArbol nodo)//metodo recursivo para realizar recorrido preorden { if ( nodo == null)//si nodo es igual a null return;//retornar o regresar

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

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

S-ar putea să vă placă și