Elementos del nivel k de un árbol
Los árboles binarios con valores en las hojas y en los nodos se definen por
data Arbol a = H a | N a (Arbol a) (Arbol a)
Por ejemplo, el árbol
7 / \ / \ 2 9 / \ 5 4
se representa por
N 7 (N 2 (H 5) (H 4)) (H 9)
Un elemento de un árbol se dirá de nivel k
si aparece en el árbol a distancia k
de la raíz.
Definir la función
nivel :: Int -> Arbol a -> [a]
tal que nivel k a
es la lista de los elementos de nivel k
del árbol a
. Por ejemplo,
nivel 0 (N 7 (N 2 (H 5) (H 4)) (H 9)) == [7] nivel 1 (N 7 (N 2 (H 5) (H 4)) (H 9)) == [2,9] nivel 2 (N 7 (N 2 (H 5) (H 4)) (H 9)) == [5,4] nivel 3 (N 7 (N 2 (H 5) (H 4)) (H 9)) == []