jueves, 12 de diciembre de 2013

ARBOL BINARIO DE BUSQUEDA.

UN ÁRBOL ES UNA ESTRUCTURA DE DATOS AMPLÍA MENTE USADA QUE IMITA LA FORMA DE UN ÁRBOL (UN  CONJUNTO DE NODOS CONECTADOS). UN NODO ES LA UNIDAD SOBRE LA QUE SE CONSTRUYE EL ÁRBOL Y PUEDE TENER CERO O MÁS NODOS HIJOS CONECTADOS A ÉL. SE DICE QUE UN NODO A ES PADRE DE UN NODO B SI EXISTE UN ENLACE DESDE A HASTA B (EN ESE CASO DECIMOS QUE B ES HIJO DE A). SOLÓ PUEDE HABER UN ÚNICO NODO SIN PADRES, QUE LLAMAREMOS RAÍZ. UN NODO QUE NO TIENE HIJOS SE CONOCE COMO HOJA. LOS DEMÁS NODOS (TIENEN PADRES Y UNO O VARIOS HIJOS) SE LES CONOCE COMO RAMAS.  
CLASE 1:

NODO DEL ÁRBOL.

public class NodoDelArbol
{
private int informacion;
private NodoDelArbol der;
private NodoDelArbol izq;
//constructores de la clase
    NodoDelArbol()
    {
    izq=null;
    der=null;
    }
    NodoDelArbol(int x)
    {
    informacion=x;
    izq=null;
    der=null;
    }
    public int getInformacion() {
        return informacion;
    }
    public void setInformacion(int informacion) {
        this.informacion = informacion;
    }
    public NodoDelArbol getDer() {
        return der;
    }
    public void setDer(NodoDelArbol der) {
        this.der = der;
    }
    public NodoDelArbol getIzq() {
        return izq;
    }
    public void setIzq(NodoDelArbol izq) {
        this.izq = izq;
    }
}



CLASE 2:

ARBOL.

public class Arbol
{
private NodoDelArbol raiz;

    public NodoDelArbol getRaiz() {
        return raiz;
    }
    public void setRaiz(NodoDelArbol raiz) {
        this.raiz = raiz;
    }
    //mètodo recursivo, r es la raìz, dato es el valor a insertar.
    public NodoDelArbol insertar(NodoDelArbol r, int dato)
     {
     if (r==null)
        {
      //creamos el nodo que vamos a insertar
         r=new NodoDelArbol(dato);
        }
     else
        {
        if (dato < r.getInformacion())
        {
        r.setIzq(insertar (r.getIzq(), dato));
        }
        else
        {
        r.setDer(insertar (r.getDer(), dato));
        }
        }
     return r;
     }
      public String inOrden (NodoDelArbol r)
     {
        String cadena =new String();
        if (r !=null)
        {
        cadena=cadena + inOrden (r.getIzq());
        cadena=cadena + String.valueOf(r.getInformacion()+ "  ");
        cadena=cadena + inOrden (r.getDer());
        }
        return cadena;
     }
      public String preOrden(NodoDelArbol r)
      {
      String cadena=new String ();
      if (r !=null)
        {
      cadena=cadena + String.valueOf(r.getInformacion()+ "  ");
      cadena=cadena + preOrden (r.getIzq());
      cadena=cadena + preOrden (r.getDer());
        }
      return cadena;
      }
      public String postOrden (NodoDelArbol r)
      {
          String cadena =new String();
          if (r !=null)
          {
          cadena =cadena + postOrden (r.getIzq());
          cadena =cadena + postOrden (r.getDer());
          cadena =cadena + String.valueOf(r.getInformacion()+ "  ");
          }
       return cadena;
      }

}

No hay comentarios:

Publicar un comentario