You are on page 1of 4

/*

* Alumno:jesus guadalupe centeno


* Carrera:ing.sistemas computacionales
* Materia:estructura de datos
* profesor: Edwin Lpez lvarez
* practica arboles
*/
package arbol2;//nombre del paquete
public class NodoArbol {//nombre de la clase
NodoArbol nodoIzquierdo;//nodo del arbol
int dato;//variable de tipo entero
NodoArbol nodoDerecho;//nodo del arbol
public NodoArbol(int datoinsertar){//iniciar dato y hacer de este nodo un nodo hoja
nodoIzquierdo=nodoDerecho=null;//el nodo no tiene hijos
dato=datoinsertar;//lo iguala
}//cierre del constructor
public synchronized void insertar(int datoinsertar){// buscar punto de insercion e inserter nodo nuevo
if(datoinsertar<dato){ //insertar en subarbol izquierdo
if(nodoIzquierdo==null){////insertar en subarbol izquierdo
nodoIzquierdo=new NodoArbol(datoinsertar);//crea un nodo nuevo
}//fin del if
else{// de lo contratio
nodoIzquierdo.insertar(datoinsertar);//continua recorriendo subarbol izquierdo
}//fin else
}//cierre del if
else{//de lo contario
if(nodoDerecho==null){// si estas vacio
nodoDerecho= new NodoArbol(datoinsertar);//insertar nuevo nodoArbol
}//fin el if
else{// de lo contrario
nodoDerecho.insertar(datoinsertar);
}//cierre del else
}//cierre del els e
}//fin de metodo insertar
}//fin de la clase

/*
* Alumno:jesus guadalupe centeno
* Carrera:ing.sistemas computacionales
* Materia:estructura de datos
* profesor: Edwin Lpez lvarez
* practica arboles
*/
package arbol2;//nombre del paquete

public class Arbol {//nombre de la clase


NodoArbol raiz;//nodo raiz
public synchronized void insertar(int valor){//metodo insertar
if(raiz== null){//verifica si la raiz esta vacia
raiz = new NodoArbol(valor);//crea nodo raiz
}else{// de lo contrario
raiz.insertar(valor);//llama al metodo insertar
}//cierre del else
}//fin del metodo
public synchronized void recorridoPreorden(){// empieza el recorrido preorden
preOrden(raiz);//inicia d ela raiz
}//cierre del metodo
private void preOrden(NodoArbol nodo){//inico de le recorrido
if(nodo==null)//si el nodo esta vacio
return;//metodo recursivo para recorrido en preorden
System.out.print(nodo.dato+" ");//mostrar datos del nodo
preOrden(nodo.nodoIzquierdo);//recorre subarbol izquierdo
preOrden(nodo.nodoDerecho);//recorre subarbol derecho
}//cierre del metodo
public synchronized void recorridopostOrden(){// empieza el recorrido
postOrden(raiz);//inicia d ela raiz
}//cierre del metodo
private void postOrden(NodoArbol nodo){// empieza el recorrido
if(nodo==null)
return;//metodo recursivo para recorrido
postOrden(nodo.nodoIzquierdo);//recorre subarbol izquierdo
postOrden(nodo.nodoDerecho);//recorre subarbol derecho
System.out.print(nodo.dato+" ");//mostrar datos del nodo
}
public synchronized void recorridoinOrden(){// empieza el recorrido
inOrden(raiz);//inicia d ela raiz

}//cierre del metodo


private void inOrden(NodoArbol nodo){// empieza el recorrido
if(nodo==null)
return;//metodo recursivo para recorrido
inOrden(nodo.nodoIzquierdo);//recorre subarbol izquierdo
System.out.print(nodo.dato+" ");//mostrar datos del nodo
inOrden(nodo.nodoDerecho);//recorre subarbol derecho
}//cierre del metodo
}//fin de la clase

/*
* Alumno:jesus guadalupe centeno
* Carrera:ing.sistemas computacionales
* Materia:estructura de datos
* profesor: Edwin Lpez lvarez
* practica arboles
*/
package arbol2;//nombre del paquete
import javax.swing.JOptionPane;//libreria

public class MainArbol {//nombre de la clase


public static void main(String[] args) {//metodo principal
Arbol arbol = new Arbol();//crea un objeto nuevo
int nodos=Integer.parseInt(JOptionPane.showInputDialog(null,"Cuantos datos deseas
capturar"));//pide un dato al usuario
int valor;//variable
for(int x=0;x<nodos;x++){//condicion del for
valor=Integer.parseInt(JOptionPane.showInputDialog(null,"Captura un dato numerico"));//pide
un dato al usuario
arbol.insertar(valor);//llama al metodo
}//cierre del for
System.out.print("\n Recorrido Preorden \n");//imprime texto en consola
arbol.recorridoPreorden();//llama al metodo
System.out.print("\n Recorrido inOrden \n");//imprime texto en consola
arbol.recorridoinOrden();//llama al metodo
System.out.print("\n Recorrido postOrden \n");//imprime texto en consola
arbol.recorridopostOrden();//llama al metodo
System.out.print("\n ");//salto de linea
}//fin del metod principal
}//fin de la clase

You might also like