Besoin d'aide urgent: arbre binaire

Fermé
mianurore - 30 janv. 2013 à 23:45
KX
Messages postés
16557
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
26 juin 2022
- 31 janv. 2013 à 09:51
Bonjour,



j'ai un problème assez urgent vu que je dois remettre un travail pour demain: je construit un arbre a partir d'un fichier binaire ex:

1100110001110011001010011001001001100010001100001

un 1 represente un noeud interne un 0 une feuille suivit des 8 bit du code asci. donc ici j'aurai :
110c10e0d10b0a
donc mon arbre: 0=noeud interne
0
/ \
0 0
/ \ / \
c 0 b a
/ \
e d

donc je reconstruit mon arbre avec une methode;

racine=monterArbre();

public Noeud monterArbre() throws IOException {
boolean c = R1.readBoolean();
if (!c) {
char f =R1.readChar();
return new Noeud(f, -1, null, null);
} else {
return new Noeud('\0', -1, monterArbre(), monterArbre());
}
}

donc qui me retourne la racine de mon arbre.

readBoolean me permet de lire un bit et readChar le caractere codé sur 8 bits.

mais quand je visionne mon arbre j'ai
110c10e0ä10b0ÿ comment se fait'il que mon d devienne ä et mon a devienne ÿ??

1 réponse

KX
Messages postés
16557
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
26 juin 2022
2 961
31 janv. 2013 à 09:51
Le passage de ton code binaire (transformé en 110c10e0d10b0a) à ton arbre, est quand même loin d'être évident de but en blanc, il faut le temps de comprendre qu'il s'agit de la transcription d'un parcours préfixe pour bien se mettre dedans...

      1
   /     \
  1       1
 / \     / \
0c  1   0b 0a
   / \
  0e 0d

Ensuite vient ton code, là encore, aucune explication, utilisation de R1 dont on espère pour toi que ça fait bien ce qu'on croit, mais initialisé on ne sais où, et qui engendre des objets Noeud avec un constructeur à 4 paramètres (à quoi sert le 2è ?).

Bref, tout ça est loin, très loin d'être limpide !

À défaut d'avoir trouvé l'erreur dans le code de monterArbre, je me dis que l'erreur est soit dans la méthode readChar, soit dans l'affichage de l'arbre !
0