martes, 10 de diciembre de 2013

ARBOL

NOVENA PRACTICA


CONCEPTO

 "Es una colección de nodos que tienen arboles", es una estructura no lineal (1 antecesor y varios sucesores)
y dinámica(no hay restricción de eliminar o insertar nodos), sus elementos se llaman nodos, inicia con un nodo llamado raíz (si raíz es null, esta vació el árbol), es una estructura recursiva(se llama así misma), el numero de descendientes de un nodo es el grado del nodo, el  grado del árbol es el máximo de descendientes que puede tener un nodo y su  final se llama hoja

arboles binarios de búsqueda

1- grado 2
2- hijo izquierdo y derecho
3- ordenado: los nodos menores a la raíz van a la izquierda  y los mayores a la derecha
4- operaciones:
4.1- recorrido:
  4.1.1 inorden
  4.1.2 preorden
  4.1.3 postorden
4.2 - insertar
4.3- borrar


 PROCEDIMIENTO


1.  Creamos la clase NodoArbol y el constructor de la clase [NodoArbol ()], refractamos int información, NodoArbol der e izq.

2.   Luego elaboramos la clase Arbol, la cual tiene un constructor [Arbol ()], refractamos NodoArbol raíz, 4 métodos: insertar, inOrden, preOrden y posOrden.

DIAGRAMAS UML


 CODIFICACION


inicia la clase NodoArbol
package Ortiz;
public class NodoArbol {
 private int informacion;
 private NodoArbol der;
 private NodoArbol izq;
 //constructor d la clase
NodoArbol(){
    izq=null;
    der=null;
}
NodoArbol(int x){
   informacion=x;
   izq=null;
   der=null;
}
 }
termina la clase NodoArbol


inicia la clase Arbol
package Ortiz;
public class Arbol {
   private NodoArbol raiz;
   //contructor de la clase
    Arbol(){
        raiz=null;
    }
 
    //metodo recursivo ,r es la raiz, datoes 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){
        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(NodoArbol 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(NodoArbol r){
        String cadena =new String();
        if(r !=null){
          cadena=cadena+preOrden(r.getIzq());
           cadena=cadena+preOrden(r.getDer());
           cadena=cadena+String.valueOf(r.getInformacion()+"   ");
        }
        return cadena;
    }
}
termina la clase ARBOL

CONCLUSIÓN

En esta practica podemos analizar  una colección de nodos organizados en forma recursiva. Cuando hay 0 nodos se dice que el árbol esta vacío, en caso contrario el árbol consiste en un nodo denominado raíz, el cual tiene 0 o más referencias a otros árboles, conocidos como subárboles. Las raíces de los subárboles se denominan hijos de la raíz, y consecuentemente la raíz se denomina padre de las raíces de sus subárboles.

AUTORES

Javier Arley Gonzalez Roblero, Saulo Ortiz Ortiz, Manuel Alejandro Mendez Lopez.

No hay comentarios:

Publicar un comentario