viernes, 13 de diciembre de 2013

Arboles Binarios de Búsqueda


= ARBOLES BINARIOS DE BUSQUEDA=

Se trata de árboles de grado 2 en los que se cumple que para cada nodo, el valor de la raíz del subárbol izquierdo es menor que el valor del nodo y que el valor de la raíz del subárbol derecho es mayor que el valor del nodo.

Las características de los Arboles Binarios de Búsqueda son:

  • Es de Grado 2
  • Sus hijos de la raíz van de lado izquierdo y derecho
  • Tiene su orden:
             * Los nodos menores van de lado izquierdo de la raíz y los nodos mayores de lado izquierdo de la raíz.
  • Sus Operaciones son:
* Recorrido: 
1.- Inorden
2.- Preorden
3.- Postorden

  • Insertar 
  • Eliminar
Diagrama de un Arbol Binario:


Aquí como se dan cuenta la raíz es el numero 50 despues nos dan el siguiente numero que es el 30 y como es menor que el 50 se coloca a lado izquierdo y el siguiente numero fue 75 y como es mayor que el 50 va al lado derecho y así sucesivamente dependiendo si es menor o mayor que la raiz se coloca ya sea ala izquierdo o derecho y despues de haber comparado el elemento en este caso el numero con la raiz se compara con el hijo izquierdo o derecho dependiendo de donde fue el lado.

NOTA:
Y a los que van despues de la raíz se le llama HIJOS 

Ø  Programación en Java:

1.-  Aquí comienza la clase de Arboles Binarios de Busqueda:


   package Dicknersito;
   public class Arbol 
   {

    private NodoArbol raiz;   //contructor de la clase
      Arbol()
{
        raiz=null;
    }
    public NodoArbol getRaiz() 
    {
        return raiz;
    }
    public void setRaiz(NodoArbol raiz) 
   {
        this.raiz = raiz;
    }
    //metodorecursivo ,r es la raiz, dato es el valor
    public NodoArbol insertar(NodoArbol r,int dato)
   {
        if(r==null) //creamos el nodo que vamos a insertar
    {
            r=new NodoArbol(dato);
        }
        else
    {
            if(dato < r.getInformacion())
    {
                r.setIzq(insertar(r.getIzq(),dato));
            }
            else
   {
                r.setDer(insertar(r.getDer(),dato));
            }
        }
        return r;
    }
    public String inorden(NodoArbol r) // nombre de la clase
   {
        String cadena= new String();
        if(r !=null)
    {
            cadena=cadena+inorden(r.getIzq());
            cadena=cadena+String.valueOf(r.getInformacion()+"");
     valueOf es para convertir de un entero a un String
            cadena=cadena+inorden(r.getDer());
        }
        return cadena;
    }
   public String preorden(NodoArbol r) // nombre de la clase
   {
        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 posorden(NodoArbol r) // nombre de la clase
   {
        String cadena= new String();
        if(r !=null){
            cadena=cadena+posorden(r.getIzq());
             cadena=cadena+posorden(r.getDer());
            cadena=cadena+String.valueOf(r.getInformacion()+" ");
           
        }
        return cadena;

}

}   Conclusión:


 Como  se pudo ver que  en un Árbol  su  Estructura es No Lineal y es Recursiva en un árbol como su estructura de datos es NO Lineal nos permite almacenar una cantidad de datos de forma ordenada y se representa mediante un conjunto de nodos entrelazados entre sí por medio de ramas es importante que sabernos ubicar en el Nodo que es, ya que si nos ubicamos mal  podemos crear un mal funcionamiento del algoritmo o llegar a borrar información equivocada.

Nota: El Nodo que No tiene hijos es llamado, “Hoja” o “Nodo Hoja”. 


Publicado por: Dickner Steven Barrios & Yenifer Mina Castillo

No hay comentarios:

Publicar un comentario