Exercitium1-0.1.0.0: Problemas de Exercitium (Volumen 1)

CopyrightExercitium (28-05-14)
LicenseGPL-3
MaintainerJoseA.Alonso@gmail.com
Safe HaskellSafe
LanguageHaskell2010

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 Show

Por 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 ej1
N 6 (N 2 (H 0) (H 1)) (N 5 (H 3) (H 4))

Gráficamente,

         6 
        / \ 
       /   \
      /     \
     2       5 
    / \     / \
   0   1   3   4  

Synopsis

Documentation

data Arbol a Source #

Tipo de dato de árboles binarios.

Constructors

H a 
N a (Arbol a) (Arbol a) 

Instances

Eq a => Eq (Arbol a) Source # 

Methods

(==) :: Arbol a -> Arbol a -> Bool #

(/=) :: Arbol a -> Arbol a -> Bool #

Show a => Show (Arbol a) Source # 

Methods

showsPrec :: Int -> Arbol a -> ShowS #

show :: Arbol a -> String #

showList :: [Arbol a] -> ShowS #

ej1 :: Arbol String Source #

Ejemplo de árbol.

enumeraArbol :: Arbol t -> Arbol Int Source #

Definición.