Besoin d'aide urgent: arbre binaire

Fermé
mianurore - 30 janv. 2013 à 23:45
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
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