| Copyright | Exercitium (28-05-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Enumera_arbol
Description
Enumeración de árboles binarios
Los árboles binarios se pueden representar mediante el tipo Arbol definido por
data Arbol a = H a
| N a (Arbol a) (Arbol a)
deriving ShowPor ejemplo, el árbol
"B"
/ \
/ \
/ \
"B" "A"
/ \ / \
"A" "B" "C" "C"se puede definir por
ej1 :: Arbol String ej1 = N "B" (N "B" (H "A") (H "B")) (N "A" (H "C") (H "C"))
Definir la función
enumeraArbol :: Arbol t -> Arbol Int
tal que (enumeraArbol a) es el árbol obtenido numerando las hojas y los nodos de a desde la hoja izquierda hasta la raíz. Por ejemplo,
>>>enumeraArbol ej1N 6 (N 2 (H 0) (H 1)) (N 5 (H 3) (H 4))
Gráficamente,
6
/ \
/ \
/ \
2 5
/ \ / \
0 1 3 4