Méthode toString pour afficher un arbre binaire complet

Fermé
membre1990 - 10 mai 2014 à 00:25
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 10 mai 2014 à 20:55
Bonsoir :),
je veux afficher les éléments d'un arbre binaire complet à l'aide de la méthode "toString", je commence par la racine, je parcours la partie gauche puis la partie droite. SVP j'ai besoin de votre aide.
voici la structure de mon arbre:



public class Noeud <E>{
E info;
Noeud<E> filsG;
Noeud<E> filsD;
public Noeud(E i,Noeud g, Noeud d)
{
this.info=i;
this.filsG=g;
this.filsD=d;
}
}


public class Arbre <E>{
Noeud <E> racine;
public Arbre(Noeud r)
{
this.racine=r;

}
public Arbre()
{
this.racine=null;
}
..
..
}

j'ai codé une fonction d'affichage, mais elle ne me permet pas d'afficher les éléments s'ils sont de types classe.



public void afficher(Noeud rac)
{
System.out.println(rac.info);
System.out.println();
afficher(rac.filsG);
afficher(rac.filsG);
}





A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 mai 2014 à 09:17
Bonjour,

Ta méthode afficher() fais des System.out.println, or ce que tu veux c'est mettre les informations dans un String, c'est donc assez différent !

Est-ce que tu as une méthode qui transforme ton arbre en liste ?
C'est généralement la meilleure manière d'afficher les éléments d'un arbre que d'afficher les éléments de la liste correspondante.

Sinon, le principe en gros c'est :

public String toString()
{
    String str = String.valueOf(info);
    
    if (filsG != null)
        str = filsG.toString()+", "+str;

    if (filsD != null)
        str = str+", "+filsD.toString();
    
    return "("+str+")";
}
0
merci beaucoup KX pour votre réponse,
j'ai pas une fonction pour la transformation de l'arbre en liste, et je sais pas s'il est nécessaire de l'avoir. je veux garder la structure d'un arbre, mais j'ai trouvé des problèmes dans l'insertion, car l'insertion se fait toujours à gauche si le nombre de noeud dépasse 7, alors que je dois garder mon arbre ""complet(tout les niveaux; droit et gauche; sont remplis).
que me conseillez vous??
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 mai 2014 à 20:55
Reviens sur ta discussion Comment insérer des objets dans un arbre binaire complet et postes ton code actuel pour que je puisses tester et voir ce qui cloche.
0