IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

une méthode de représentation arbre binaire en java


Sujet :

avec Java

  1. #1
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Points : 96
    Points
    96
    Par défaut une méthode de représentation arbre binaire en java
    Bonjour,

    si quelqu'un peu m'explique avec un petite exemple comment en peu représenter une structure d'arbre binaire en java avec les TreeSet avec un petit code si possible.
    Je n'est pas comprit comment il marche.

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    Désolé, pas de bout de code ;-) mais je pense que tu fais fausse route : TreeSet est une implémentation de Set basée sur des arbres... la nuance est de taille car tu ne peux pas l'utiliser pour représenter des arbres.

  3. #3
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Points : 96
    Points
    96
    Par défaut
    donc ce n'est pas approprie pour la réalisation d'une structure d'arbre binaire en java

    Si quelqu'un peu propres une méthode ou une ou une collection qui peu être utiliser pour réaliser un arbre binaire en java.

    j'ai trouvait sa c'est peut-être intéressante
    http://www.developpez.net/forums/d50...n/#post4232433

    Merci d'avance.

  4. #4
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Points : 96
    Points
    96
    Par défaut
    bon, ok

    dans le cas ou en crée une classe nœud (la structure d'un nœud de l'arbre)

    et en déclare une propriété de type nœud. (jusque la c'est bon)

    ce que je n'est pas comprit c'est comment faire les lien entre les différant nœud.

    dans mon cas je veux commencer des feuille de l'arbre (j'ai placer met feuille dans ArrayList) la je veux que à partir de deux nœud feuille construire un(1) nœud qui à comme filsGauche et filsDroit les deux feuille qui son dans le ArrayList.

    je panse à une comme: noeud.fillsG = feuille. (mais sa reste un peu flou)

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Généralement, on commence par le noeud de l'arbre, et on le remplie au fur et à mesure. La feuille d'un arbre n'est ni plus ni moins qu'un noeud sans fils.
    Je pense que tu dois revoir la conception de ton algorithme.
    A quoi veux-tu arriver au final ? Trier des valeurs ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    La structure à choisir dépend de ce que tu veux faire...

    Une façon très simple de construire un arbre binaire serait celle-ci:
    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
    public class Noeud
    {
    	private Noeud filsGauche;
    	private Noeud filsDroit;
     
    	public Noeud()
    	{
    		this.filsGauche = null;
    		this.filsDroit = null;
    	}
     
    	public Noeud(Noeud filsGauche, Noeud filsDroit)
    	{
    		this.filsGauche = filsGauche;
    		this.filsDroit = filsDroit;
    	}
     
    }
    Tu peux construire une feuille (constructeur sans paramètre) ou un noeud à deux fils (constructeur avec paramètres).
    N'importe quelle instance de Noeud peut servir de racine.
    Le parcours "vers le bas" se fait sans problème.

    Ensuite tu peux complexifier :
    - rajouter un constructeur avec un seul paramètre si tu veux permettre les noeuds à un seul fils
    - rajouter dans chaque noeud une référence vers le père si tu veux permettre un parcours "vers le haut"
    - effectuer des vérifications pour interdire les boucles
    - rajouter des étiquettes sur chaque noeud (parce que c'est bien beau tout ça mais je suppose qu'il y a un traitement à effectuer avec cet arbre)
    - ...


    Ça c'est pour construire sa structure d'arbre from scratch, mais je ne sais pas s'il existe une classe prête à l'emploi.

  7. #7
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par drhouse Voir le message
    Désolé, pas de bout de code ;-) mais je pense que tu fais fausse route : TreeSet est une implémentation de Set basée sur des arbres... la nuance est de taille car tu ne peux pas l'utiliser pour représenter des arbres.
    ah? et pourquoi siouplait?
    à part le fait qu'il n'y a pas de duplicata (Set) , je ne vois pas pourquoi ça n'a pas un comportement parfait d'arbre binaire ....
    le plus simple: mettre des objets de type T qui soient Comparable<T> (et
    avec une méthode equals cohérente).
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

Discussions similaires

  1. Les arbres binaire en java
    Par vincem35 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2007, 19h44
  2. [Méthode de tri][Arbre binaire] Problème dans l'ordre total
    Par jgavard dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 24/04/2007, 16h55
  3. Dessiner un arbre binaire en java?
    Par zenaare dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 08/01/2007, 16h01
  4. Réponses: 3
    Dernier message: 19/10/2006, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo