Programmation récursive en schemme

Fermé
cynthia - 21 mai 2011 à 14:05
 cynthia - 21 mai 2011 à 14:06
Bonjour,


Voilà, j'aurais besoin d'une petite aide pour avancer mon TP projet : Codage par la méthode de Huffman

Pour l'instant, j'ai écris ces fonctions
 : 


(ajoute1 cr L) qui ajoute 1 à la fréquence du caractère cr s'il est dans la liste L, ou qui ajoute le caractère dans cette liste
Exemple : (ajoute1 "e" '(("a" 3) ("e" 2)) renvoie '(("a" 3) ("e" 3))


(statistiques L) qui étant donnée une liste de caractères calcule la liste des fréquences
Exemple : (statistiques '("c" "c" "m")) renvoie '(("c" 2) ("m" 1))

(inserefreq cp L) insère le couple cp dans une liste de couples triée
Exemple : (inserefreq '("a" 2) '(("b" 1) ("d" 3))) renvoie '(("b" 1) ("a" 2) ("d" 3))

(triefreq L) qui trie une liste de fréquences par insertions successives

(fg A) qui renvoie le fils gauche d'un arbre
(fd A) qui renvoie le fils droit d'un arbre
(feuille? L) qui renvoie vraie si une liste L représente une feuille (i.e. : un couple)

(fusion A B) qui fusionne deux arbres de Huffman ( A et B )

(arbre-codage L) qui, selon une liste L des fréquences triée, construit l'arbre de Huffman (par insertions successives de la fusion des deux premiers arbres dans le reste de la liste.



Et c'est maintenant que ça devient plus compliqué je trouve :
Créer la fonction construit-code qui, étant donné un arbre de Huffman, construit la liste des codes associés à chaque caractère.


Voilà... Si quelqu'un trouve ceci trivial, je serais heureuse qu'il puisse m'éclairer un peu, car là, je suis complètement bloquée, et cela m'empêche de terminer ce TP.

Merci d'avance, et bonne journée à tous =).



A voir également:

1 réponse

Oh pourquoi mes sauts de lignes ont disparus ??
Désolée pour la lecture, c'est un peu indigeste du coup :/
0