Arboles.java_



package arbol1;

/**
 * Descripcion:
 * Copyright:    Copyright (c) 2002
 * Empresa:      SID - FIE - UMSNH
 * @author J. Rafael R. Ochoa
 * @version 1.0
 */

public class Principal
{
   Nodo Arbol = null;

   public Principal()  {  }

   public void Iniciar()
   {
      int Datos[] = {80, 90, 10, 5, 45, 30, 20, 78, 120, 23, 67, 64, 69, 100, 200};

      CreaArbol(Datos);
      System.out.print("\nPreOrden=> "); PreOrden(Arbol);
      System.out.print("\nEntreOrden=> "); EntreOrden(Arbol);
      System.out.print("\nPostOrden=> "); PostOrden(Arbol);

   }

   public void CreaArbol(int[] Datos)
   {
      int Indice = 0;
      Nodo NodoNuevo = null;

      for(Indice = 0; Indice < 15; Indice++)
      {
         NodoNuevo = new Nodo(Datos[Indice]);
         Arbol = InsertaEnArbol(Arbol, NodoNuevo);
      }
   }

   public Nodo InsertaEnArbol(Nodo Arbol, Nodo NodoNuevo)
   {
      if (Arbol == null) return NodoNuevo;
      if (NodoNuevo.Valor > Arbol.Valor)
      {
         Arbol.Der = InsertaEnArbol(Arbol.Der, NodoNuevo);
         NodoNuevo.Padre = Arbol;
      }
      if (NodoNuevo.Valor < Arbol.Valor)
      {
         Arbol.Izq = InsertaEnArbol(Arbol.Izq, NodoNuevo);
         NodoNuevo.Padre = Arbol;
      }
      return Arbol;
   }

   public void PreOrden(Nodo Arbol)
   {
      System.out.print(Arbol.Valor + ", ");
      if (Arbol.Izq != null) PreOrden(Arbol.Izq);
      if (Arbol.Der != null) PreOrden(Arbol.Der);
   }

   public void EntreOrden(Nodo Arbol)
   {
      if (Arbol.Izq != null) EntreOrden(Arbol.Izq);
      System.out.print(Arbol.Valor + ", ");
      if (Arbol.Der != null) EntreOrden(Arbol.Der);
   }

   public void PostOrden(Nodo Arbol)
   {
      if (Arbol.Izq != null) PostOrden(Arbol.Izq);
      if (Arbol.Der != null) PostOrden(Arbol.Der);
      System.out.print(Arbol.Valor + ", ");
   }
}