jueves, 23 de febrero de 2017

CÓDIGO DE ARBOL

CÓDIGO DE ÁRBOL 
Clase Nodo
public class Nodo {
    int dato;
    Nodo hijoIzquierdo;
    Nodo hijoDerecho;
    String nombre;
    
    public Nodo(int dato,String nombre){
    this.dato=dato;
    this.nombre=nombre;
    hijoIzquierdo=hijoDerecho=null;        
}

    public int getDato() {
        return dato;
    }

    public void setDato(int dato) {
        this.dato = dato;
    }

    public Nodo getHijoIzquierdo() {
        return hijoIzquierdo;
    }

    public void setHijoIzquierdo(Nodo hijoIzquierdo) {
        this.hijoIzquierdo = hijoIzquierdo;
    }

    public Nodo getHijoDerecho() {
        return hijoDerecho;
    }

    public void setHijoDerecho(Nodo hijoDerecho) {
        this.hijoDerecho = hijoDerecho;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

   
    
}

Clase Árbol




public class Arbol {
    Nodo raiz;

  
    public Arbol(){
        
        raiz=null;
    }
    public boolean estaVacio(){
        return raiz==null;
    }
    //MEOTDO PARA INSERTAR UN NODO EN EL ARBOL
    public void agregar(int dato,String nombre){
        Nodo nuevo=new Nodo(dato,nombre);
        if(raiz==null){
            raiz=nuevo;
        }else{
            Nodo temp=raiz;
            Nodo padre;
            while(true){
                padre=temp;
                if(dato

Test Árbol

public class TestArbol {
    public static void main(String[] args) {
        Arbol a=new Arbol();
        int elemento=0;
        
        a.agregar(5, "Juan");
        a.agregar(3, "Manuel");
        a.agregar(7, "Jose");
        a.agregar(2, "Ana");
        a.agregar(4,"Luisa");
        a.agregar(8,"Miguel");
        a.preOrden(a.raiz);
        a.inOrden(a.raiz);
        a.buscarNodo(elemento);


    }
    
}

miércoles, 22 de febrero de 2017

ARBOLES

ARBOLES BINARIO

El árbol es una estructura de datos muy importante en informática y en ciencias de la computación. Los árboles son estructuras no lineales, al contrario que los arrays y las listas enlazadas, que constituyen estructuras lineales.
Un árbol consta de un conjunto finito de elementos, llamados nodos y de un conjunto finito de líneas dirigidas, llamadas ramas, que conectan los nodos.
Características:

  • Raiz.
  • Hijos.
  • Cada nodo puede tener entre 0-2 hijos.
  • Profundidad.
  • Altura.
  • Tamaño.
  • Nodo exterior Nodo interior
Arbol binario con lista doble

 A continuación una gráfica para comprender las características de un Arbol binario



Clases de arboles binario
*PreOrden(raíz, izquierdo, derecho).Para recorrer un árbol binario no vacío en preorden, hay que realizar las siguientes operaciones recursivamente en cada nodo comenzando con el nodo de raíz:
1. Visite la raíz
2. Atraviese el sub-árbol izquierdo
3. Atraviese el sub-árbol derecho

*InOrden (izquierdo, raíz, derecho). Para recorrer un árbol binario no vacío en inorden (simétrico),hay que realizar las siguientes operaciones recursivamente en cada nodo:
1. Atraviese el sub-árbol izquierdo
2. Visite la raíz
3. Atraviese el sub-árbol derecho

*PostOrden(izquierdo, derecho, raíz). Para recorrer un árbol binario no vacío en postorden, hayque realizar las siguientes operaciones recursivamente en cada nodo:
1. Atraviese el sub-árbol izquierdo
2. Atraviese el sub-árbol derecho
3. Visite la raíz

Ejemplo:




Recorrido en PreOrden
 1 2 3 4 5 6 7

Recorrido en InOrden
 2 1 4 3 6 5 7

Recorrido en PostOrden
 2 4 6 7 5 3 1