Haskell — Arbres amb talla

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
  1. Escriviu una funció isOk :: STree a -> Bool que indiqui si les talles dels nodes d’un arbre amb talles són correctes.

  2. Escriviu una funció nthElement :: STree a -> Int -> Maybe a que retorni l’nn-èsim element en inordre (començant per 1) d’un arbre amb talla correcte, o Nothing si no existeix. El cost ha de ser O(h)O(h) on hh és l’alçada de l’arbre.

  3. 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).

  4. Feu que STree sigui un functor.

Fixeu-vos en els exemples.

Informació del problema

Autoria: Jordi Petit, Gerard Escudero

Generació: 2026-02-03T16:59:39.102Z

© Jutge.org, 2006–2026.
https://jutge.org