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.
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.
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.
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.
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)
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.
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:
Tu peux construire une feuille (constructeur sans paramètre) ou un noeud à deux fils (constructeur avec paramètres).
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; } }
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.
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager