Bonjour les loulous,
Je suis actuellement en train de me pencher sur l'algorithme d'Huffman en C#, langage que je ne maîtrise pas encore... (Il faut bien un début à tout !)
Je l'ai déjà fait en C, et j'aimerai refaire un peu la même chose en C#, juste pour connaître les différences entre les deux langages.
Je suis face à un problème que je n'arrive pas à résoudre. Pour ceux qui ne connaisse pas, l'algorithme d'Huffman est là : http://fr.wikipedia.org/wiki/Codage_de_Huffman
J'essaye de compresser des fichiers textes. Ce qui fait que je compte le nombre d’occurrence de mes lettres, et je les places comme suis :
Maintenant, j'aimerai créer une liste, pour ensuite l'utiliser et créer un arbre avec celle ci. (Cas d'école me voilà !)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 A 1 l 1 l 2 e 1 r 1 1 l 3 e 2 s 1 2 m 1 e 3 c 1 s 2 3 o 1 n 1 4 y 1 5 c 2 r 2 o 2 i 1 t 1 6 ! 1
Je fais ceci :
Mais d'après mes quelques recherches, je ne peux pas utiliser de pointeurs dans une structure et sur une structure, à cause du Garbage collector.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 struct Maillon { char octet; int occurence; struct Maillon * filsGauche; struct Maillon * filsDroit; struct Maillon * suivant; }
Donc, je vous demande ici même, puis je utiliser les pointeurs ? Ou, sinon, comment puis je pallier au problème ?
Merci à tous =)
Sylvanocry.
Partager