Bonjour à tous,

je demandes votre aide car ca fait 2 jours que je travaille sur ce code et j'ya vance pas!

Je suis après implémenter un algorithme de Huffman. Mon code entier est fait, seulement, lorsque je compresse j'obtient un fichier vraiement plus gros que mon précédent. Pour un fichier de 900 k j'obtient un fichier de 1 meg.

Je croyais que mon problème était dans ma fonction d'écriture cependant le problème ne vient pas de la!

Je vous poste mon algo de création de l'Arbre si jamais quelqu'un y voit un problème, ne vous gêné pas!

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
28
29
30
private void createBinaryTree()
	{
		boolean done = false;
		TreeNode currentNode = null;
		TreeNode []currentNodeList = new TreeNode[currentTableSize];
		System.arraycopy(treeNodeList, 0, currentNodeList, 0, currentTableSize);
 
		while(!done)
		{
 
			// If not = 1 it means we can get 2 items
			if(currentNodeList.length != 1)
			{
				TreeNode node1 = currentNodeList[currentTableSize - 1];
				TreeNode node2 = currentNodeList[currentTableSize - 2];
 
				currentNode = combine(node1, node2);
 
				currentTableSize--;
				currentNodeList = new TreeNode[currentTableSize];
				System.arraycopy(treeNodeList, 0, currentNodeList, 0, currentTableSize);
				currentNodeList[currentTableSize - 1] = currentNode;
			}
			else
			{
				done = true;
			}
		}
		this.root = currentNode;
	}
Présentement je suis sur le fait que l'Arbre n'est pas balancé, ce qui me donne des code de 111111111111111111111111111111111110 ce qui est très long pour un caractère.

Est ce que le non balancement de mon arbre y ait pour quelques choses?

Merci