lunes, 29 de abril de 2019

3.Arboles Binarios

¿Para que sirve un árbol binario?

Como todos sabemos un árbol binario es una estructura de datos, y como todas, este sirve para organizar datos para facilitar su manipulación, ya sea el ingreso, borrado o búsqueda de datos, y precisamente una de las principales ventajas de los árboles binarios es la búsqueda, ya que como en muchos algoritmos de búsqueda necesitamos tener la información ordenada y en nuestros árboles binarios precisamente los datos van ingresando de forma ordenada.
Recorridos con los conocidos métodos recursivos:

  • Inorden
  • Postorden
  • Preorden
Árboles binarios. 
Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: 
  • El primer subconjunto contiene un elemento único llamado raíz del árbol.
  • El segundo subconjunto es en sí mismo un árbol binario y se le conoce como subárbol izquierdo del árbol original.
  • El tercer subconjunto es también un árbol binario y se le conoce como subárbol derecho del árbol original.
  • El subárbol izquierdo o derecho puede o no estar vacío. Cada elemento de un árbol binario se conoce como nodo del árbol.

Tipos de Árboles

  • Árboles Binarios: Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: raíz del árbol, subárbol izquierdo y subárbol derecho
  • Árbol de búsqueda binario auto-balanceable: Es el que intenta mantener su altura, o el número de niveles de nodos bajo la raíz, tan pequeños como sea posible en todo momento, automáticamente
  • Árboles AVL: están siempre equilibrados de tal modo que para todos los nodos, la altura de la rama izquierda no difiere en más de una unidad de la altura de la rama derecha o viceversa.
  • Árboles Rojo-Negro : Un árbol rojo-negro es un árbol binario de búsqueda en el que cada nodo tiene un atributo de color cuyo valor es rojo o negro.
  • Árboles AA: utilizado para almacenar y recuperar información ordenada de manera eficiente
  • Árbol de segmento: es una estructura de datos en forma de árbol para guardar intervalos o segmentos. Permite consultar cuál de los segmentos guardados contiene un punto.
  • Árboles Multicamino: es un árbol ordenado cuyos nodos deben tener un número específico de hijos.
  • Árboles B: Es un árbol de búsqueda que puede estar vacío o aquel cuyos nodos pueden tener varios hijos, existiendo una relación de orden entre ellos.
Un árbol binario es un árbol en el que ningún nodo puede tener más de dos subárboles. En un árbol binario cada nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.
Existen tipos de árboles binarios que suelen usarse para fines específicos, como:
  • Árbol binario de búsqueda
  • Árbol de Fibonacci

  • CARACTERÍSTICAS Y PROPIEDADES DE LOS ÁRBOLES.
  • * NODO indica un elemento, o ítem, de información.
    2.    * Todo árbol que no es vacío, tiene un único nodo raíz.
    3.    * Un nodo X es descendiente directo de un nodo Y, si el nodo X es apuntado por
    1.    el nodo Y. X es hijo de Y.
    4.    * Un nodo X es antecesor directo de un nodo Y, si el nodo X apunta al nodo Y. X
    2.    es padre de Y.
    5.    *Se dice que todos los nodos que son descendientes directos (hijos) de un mismo
    3.    nodo (padre), son hermanos.
    6.    * Todo nodo que no tiene ramificaciones (hijos), se conoce con el nombre de
    4.    terminal u hoja.
    7.    * Todo nodo que no es raíz, ni terminal u hoja se conoce con el nombre de
    5.    interior.
    8.    * Grado es el número de descendientes directos de un determinado nodo. Grado
    6.    del árbol es el máximo grado de todos los nodos del árbol.
    9.    * Nivel es el número de arcos que deben ser recorridos para llegar a un
    7.    determinado nodo. Por definición, la raíz tiene nivel 1.
    10. *Altura del árbol es el máximo número de niveles de todos los nodos del árbol.


4.9 Predicados mitologicos

4.9 Predicados mitologicos El siguiente ejemplo muestra como se extrae functor y aridad: ?- functor ( termino (arg(1)),Functor,A...