Considereu aquesta definició de tipus algebraic genèric per a arbres binaris amb talla (nombre de nodes del subarbre a cada node):
data STree a = Nil | Node Int a (STree a) (STree a) deriving Show
Escriviu una funció isOk :: STree a -> Bool que
indiqui si les talles dels nodes d’un arbre amb talles són
correctes.
Escriviu una funció
nthElement :: STree a -> Int -> Maybe a que retorni
l’-èsim
element en inordre (començant per 1) d’un arbre amb talla correcte, o
Nothing si no existeix. El cost ha de ser
on
és l’alçada de l’arbre.
Escriviu una funció
mapToElements :: (a -> b) -> STree a -> [Int] -> [Maybe b]
que aplica (potser) una funció a una llista d’elements d’un arbre amb
talla correcte (identificats per la seva posició en inordre).
Feu que STree sigui un functor.
Fixeu-vos en els exemples.
Autoria: Jordi Petit, Gerard Escudero
Generació: 2026-02-03T16:59:39.102Z
© Jutge.org, 2006–2026.
https://jutge.org