Bonjour,
je dois faire une ou des fonctions qui me permettre à partir d'une liste de int me donner une string. Ca marche pour le premier caractère mais pour le reste j'ai un problème. Je code mon programme selon l'idée de Huffman.
val k = [0,0,1];
val b = #"*";
fun VerifierNoeudValide([]:int list, []:arbreBinaire list)= b |
VerifierNoeudValide(l:int list, []:arbreBinaire list)= raise Codage0 |
VerifierNoeudValide([]:int list, noeud(_,c,vide,vide)::a:arbreBinaire list)= c |
VerifierNoeudValide(v::l, noeud(e,c,g,d)::a)=
if ( g <> vide ) then VerifierNoeudValide(l, [g])
else VerifierNoeudValide(l,[d])
| VerifierNoeudValide(l, noeud(e,c,g,d)::a:arbreBinaire list) =
if ( compterInt(e::l) = 1 ) then c
else VerifierNoeudValide(l,a);
val car = []:int list ;
fun decodage([]:int list, a:arbreBinaire) = b |
decodage(e::l, a) =
let val temp = VerifierNoeudValide(e::car, [a])
in
if ( temp <> #"*" ) then decodage(l, a)
else b
end;
val s = "";
fun Z(c:char, p:string) =
if ( c <> #"*" ) then implode(c::explode(p))
else raise Codage0;
fun
F(l:int list, a:arbreBinaire)= s |
F(e::l:int list, a:arbreBinaire)=
let val (t) = VerifierNoeudValide(e::car,[a])
in
if ( t <> #"*" ) then implode(t::explode(s))
else Codage0
end ;
(*
(But: Construit l'arbre de Huffman correspondant a la chaine en argument
(Paramètre : entrée : mot: chaine de charactère "EAABB"
( sortie : l'arbre de Huffman noeud(5,?,noeud(2,B,vide,vide),noeud(3,?,noeud(1,E,vide,vide),noeud(2,A,vide,vide)))
*)
bonjour
dans ton code on ne voit pas l'implementation de la fonction triNoeuds ce qui veut dire que la fonction creerArbre ne va pas s'executé.
Forum Programmation
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.