3. Vamos a hablar primero un poco de que
son los arboles binarios
Un árbol binario es una estructura de datos.
Puede estar vacío o no vacío.
Un árbol no vacío consta de:
una raíz y un valor en la raíz
un subárbol izquierdo
un subárbol derecho
5. ¿Para que sirve un árbol binario?
Organizar datos para facilitar su manipulación
Ingreso
Búsqueda
Borrado
Recorridos que puede hacer un árbol:
Inorden
Postorden
Preorden
6. Características de los árboles
Hijo: Es aquel nodo que siempre va a tener un nodo antecesor o padre, son
aquellos que se encuentran en el mismo nivel
Padre: Es aquel que tiene hijos y también puede tener o no antecesores.
Hermano: Dos nodos son hermanos si son apuntados por el mismo nodo, es decir
si tienen el mismo padre.
Raíz: Es el nodo principal de un árbol y no tiene antecesores.
Hoja o terminal: Son aquellos nodos que no tienen hijos o también los nodos
finales de un árbol.
Interior: Se dice que un nodo es interior si no es raíz ni hoja.
Nivel de un nodo: Se dice que el nivel de un nodo es el numero de arcos que
deben ser recorridos, partiendo de la raíz para llegar hasta el.
Altura del árbol: Se dice que la altura de un árbol es el máximo de los niveles
considerando todos sus nodos.
Grado de un nodo: se dice que el grado de un nodo es el número de hijos que
tiene dicho nodo.
7. ¿Cómo se aplica en Haskell?
Así de define un árbol vacio:
data BinTree árbol = Empty | node árbol (BinTree a) (BinTree a)
Así de define un árbol no vacio:
Node arbol (BinTree a)(BinTree a)
8. Ingresar valores a un árbol
Mandamos llamar la expresión
Node x l r
x = indica el valor de la raíz
l = indica el valor del subárbol izquierdo
r = indica el subárbol derecho
9. Árboles n-arios
Además de árboles binarios podemos también definir árboles n-arios. Difieren
de árboles binarios en el hecho de que todos los nodos pueden tener
un cualquier número de hijos/descendientes.
11. Para ingresar valores un árbol n-ario
data NTree arbol = Nnode arbol [ NTree arbol ]
Definir un árbol n-ario
Nnode x s
Donde x es la raíz y s es una lista de descendientes.