Es vol tenir un mòdul per a arbres binaris de cerca (binary search trees, BSTs) estàndards. Per això, es defineix el tipus següent:
Sobre aquest tipus cal crear les operacions següents:
Retorna el resultat d’inserir un element en un arbre binari de cerca. Si l’element ja hi era, el resultat és l’arbre original.
Retorna un arbre binari de cerca inserint l’un rera l’altre la llista d’elements donats.
Retorna el resultat d’esborrar un element d’un arbre binari de cerca. Si l’element no hi era, el resultat és l’arbre original.
(Nota: hi ha moltes maneres d’implementar l’esborrat; no importa quina trieu mentre sigui prou ràpida.)
Indica si un element es troba o no en un arbre binari de cerca.
Retorna l’element més gran d’un arbre binari de cerca no buit.
Retorna l’element més petit d’un arbre binari de cerca no buit.
Retorna el nombre d’elements en un arbre binari de cerca.
Retorna els elements d’un arbre binari de cerca en ordre.
Puntuació
Input
let t = create [3,4,1,2] t size t getmin t getmax t elements t map (contains t) [0..5] insert t 0 elements $ remove t 3
Output
N 3 (N 1 E (N 2 E E)) (N 4 E E) 4 1 4 [1,2,3,4] [False,True,True,True,True,False] N 3 (N 1 (N 0 E E) (N 2 E E)) (N 4 E E) [1,2,4]