Si ja heu fet el problema dels Arbres Binaris de Cerca, ara us podeu lluïr extenent la vostra implementació a Arbres AVL. En aquest problema es demana que definiu operacions per inserir en AVLs i per comprovar-ne la correctesa.
Per als AVLs, es defineix el tipus següent:
data AVL a
= E | N a Int (AVL a) (AVL a) -- l'enter guarda l'alçada
deriving (Show)
Sobre aquest tipus cal crear les operacions següents:
insert :: Ord a => AVL a -> a -> AVL a
Retorna el resultat d’inserir un element en un arbre AVL. Si l’element ja hi era, el resultat és l’arbre original.
create :: Ord a => [a] -> AVL a
Retorna un arbre AVL tot inserint un rera l’altre la llista d’elements donats.
check :: AVL a -> (Bool,Int)
Donat un arbre, si és AVL, retorna cert i la seva alçada; si no és AVL, retorna fals i -99.
Els arbres buits es consideren d’alçada -1, les fulles és consideren d’alçada zero, ...);
Autoria: Jordi Petit
Generació: 2026-02-03T16:59:48.190Z
© Jutge.org, 2006–2026.
https://jutge.org