5
PROGRAMA EN JAVA DE ÀRBOL BINARIO package arbol; public class NodoArbol {//definicion de la clase nodo arbol NodoArbol nodoIzquierdo;//miembros de acceso del paquete int datos;//se declara datos de tipo entero NodoArbol nodoDerecho;//miembros de acceso del paquete public NodoArbol (int datosNodo)//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 } public synchronized void insertar (int valorInsertar)//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); } else if (valorInsertar > datos){//insertar en subarbol derecho if (nodoDerecho == null)//insertar nuevoNodo Àrbol

PROGRAMA EN JAVA DE ÀRBOL BINARIO

Embed Size (px)

Citation preview

Page 1: PROGRAMA EN JAVA DE ÀRBOL BINARIO

PROGRAMA EN JAVA DE ÀRBOL BINARIO

package arbol;

public class NodoArbol {//definicion de la clase nodo arbol

NodoArbol nodoIzquierdo;//miembros de acceso del paquete

int datos;//se declara datos de tipo entero

NodoArbol nodoDerecho;//miembros de acceso del paquete

public NodoArbol (int datosNodo)//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

}

public synchronized void insertar (int valorInsertar)//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);

}

else if (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);

}

Page 2: PROGRAMA EN JAVA DE ÀRBOL BINARIO

}//fin del metodo insertar

}//fin de la clase NodoArbol

package arbol;

public class Arbol {//definicion de la clase Arbol

private NodoArbol raiz;

public Arbol()//construir un objeto Àrbol vacio de enteros

{

raiz = null;//raiz es igual a null

}

public synchronized void insertar (int valorInsertar)//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 raiz aqui

else//sino

raiz.insertar(valorInsertar);//llamar al metodo insertar

}

public synchronized void recorridoPreorden ()//comenzar el recorrido preorden

{

ayudantePreorden (raiz);

}

private void ayudantePreorden(NodoArbol nodo)//metodo recursivo para realizar recorrido preorden

{

if ( nodo == null)//si nodo es igual a null

return;//retornar o regresar

Page 3: PROGRAMA EN JAVA DE ÀRBOL BINARIO

System.out.print(nodo.datos + "");//mostrar datos del nodo

ayudantePreorden (nodo.nodoIzquierdo);//recorrer subÀrbol izquierdo

ayudantePreorden (nodo.nodoDerecho);//recorrer subÀrbol derecho

}

public synchronized void recorridoInorden()//empezar recorrido inorden

{

ayudanteInorden (raiz);

}

private void ayudanteInorden (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 subÀrbol izquierdo

System.out.print(nodo.datos + "");//mostrar datos del nodo

ayudanteInorden (nodo.nodoDerecho);//recorrer subÀrbol derecho

}

public synchronized void recorridoPostorden()//empezar recorrido postorden

{

ayudantePostorden (raiz);

}

private void ayudantePostorden (NodoArbol nodo)//metodo recursivo para realizar recorrido postorden

{

if (nodo == null)//si nodo es igual a null

return;//retornar o regresar

Page 4: PROGRAMA EN JAVA DE ÀRBOL BINARIO

ayudantePostorden (nodo.nodoIzquierdo);//recorrer subÀrbol izquierdo

ayudantePostorden (nodo.nodoDerecho);//recorrer subÀrbol derecho

System.out.print(nodo.datos + "");//mostrar datos del nodo

}

}

package arbol;

public class PruebaArbol {//incia que la clase PruebaÂrbol es publica

public static void main (String args [])//el metodo main hace que se pueda realizar la aplicaciòn

{

Arbol arbol = 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\nRecorrido preorden");//imprime el recorrido preorden

arbol.recorridoPreorden();//realizar recorrido preorden del Árbol

System.out.println("\n\nRecorrido Inorden");//imprime el recorrido Inorden

arbol.recorridoInorden();//realizar recorrido Inorden del Árbol

System.out.println("\n\nRecorrido Postorden");//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 PruebaÀrbol