2 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
24 nov. 2012 à 09:47
24 nov. 2012 à 09:47
Si tu as "01" pour objet 2, et "1" pour objet 3, tu auras le même code binaire pour deux feuilles différentes ce n'est pas logique. De plus pourquoi numéroter seulement les feuilles ? Il serait plus logique de numéroter tous les noeuds !
1
/ \
10 11
/ \ / \
100 101 110 111
public static void setBinaries(Tree t)
{
if (t.father==null)
setBinaries(t,"1");
else
setBinaries(t.father);
}
private static void setBinaries(Tree t,String s)
{
if (t!=null)
{
t.binaryValue = s;
setBinaries(t.leftChild,s+"0");
setBinaries(t.rightChild,s+"1");
}
}
wooo j'ai passé plusieurs heures à essayer de trouver cette opération récursive (presque élémentaire) mais je ne sais pas pourquoi ça ne venait pas ! Je viens de l'implémenter dans mon code et ça marche ! super ! et dire que j'étais en train de faire ça par des opération non récursive 100 fois plus compliqués^^
merci beaucoup !!
remarque : sisi je veux 01 pour un objet et 1 pour l'autre objet : c'est dans l'optique de faire le codage Huffman en fait ;)
merci beaucoup !!
remarque : sisi je veux 01 pour un objet et 1 pour l'autre objet : c'est dans l'optique de faire le codage Huffman en fait ;)