Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let rec extraireFeuille a l = match a,l with
- |Vide,_ -> failwith "ERREUR : Arbre vide"
- |Noeud(f1,f2),U::r -> extraireFeuille f2 r
- |Noeud(f1,f2),Z::r -> extraireFeuille f1 []
- |Noeud(_,_),[] -> failwith "1ERREUR : Feuille introuvable dans l'arbre."
- |Feuille(c1),U::[] -> c1
- |Feuille(c1),Z::[] -> c1
- |Feuille(c1),[] -> c1;;
- let rec decodage a l_bin = match a,l_bin with
- |Vide,_ -> failwith "ERREUR : Arbre vide avec liste pleine."
- |Noeud(_,_),[] -> failwith "ERREUR : Arbre plein avec liste vide."
- |Feuille(_),[] -> failwith "ERREUR : Arbre plein avec liste vide"
- |Feuille(_),U::[] -> "" ^ (Char.escaped (extraireFeuille a [U]))
- |Feuille(_),U::r -> "" ^ (Char.escaped (extraireFeuille a [U])) ^ decodage a r
- |Feuille(_),Z::_ -> failwith "ERREUR : Liste incorrecte"
- |Noeud(_,_),_::_-> let rec loopInList a' l' t' s' =
- match l' with
- |c::[] when c = U -> let s' = (s' ^ Char.escaped(extraireFeuille a' (t'@[c]))) in s'
- |c::r when c = U -> loopInList a' r (t'@[c]) s'
- |c::r when c = Z -> let s' = (s' ^ Char.escaped(extraireFeuille a' (t'@[c]))) in (loopInList a' r [] s')
- |[] -> s'
- in loopInList a l_bin [] "";;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement