-
TreeSet et recursivité
Bonjour
J'ai un algo de parcours d'arbre que je cherche a reporduire avec un TreeSet de la lib standard java.util.(ou TreeMap)
Je souhaite utiliser un parcours récursif sur les noeuds de l'arbre.
Je ne trouve pas de fonction getChildRight ou getChildLeft sur des noeuds....
Bref je souhaite parcourir récursivement l'arborescence... Comment faire simplement avec cette structure ?
PS: je ne souhaite pas passer par un Iterator ou un EntrySet.
merci
-
Salut,
C'est parce que ni TreeSet, ni TreeMap, ne sont des classes représentant des arbres, mais des set et map triés. Ces classes s'appellent comme ça parce que leur implémentation interne correspond à un arbre bicolore (arbre binaire de recherche) ou Red-Black Tree, base du système de tri. Mais on n'a pas accès à cet arbre (ni aux méthodes de parcourt), parce que ce n'est pas le but de ces classes, que de modéliser un arbre.
La seule classe standard pour modéliser les arbres en Java est TreeNode, mais c'est une classe de Swing (une interface exactement), et ce n'est pas un arbre binaire à la base (mais on peut le contraindre par l'implémentation, ce qui revient à implémenter en plus une interface d'arbre binaire).
-
Ok. Merci pour l'info je me suis fait avoir avec ce nom de Tree.
Je m'en doutais un peu en parcourant les methodes.
Mais je suis toujours étonné du manque d'implementation basique et standard.
Je vais en être quitte pour me refaire un ABR a la mano.
-
Les bibliothèques standard de Java ne contiennent que ce qui est universellement utile et qui n'est pas d'implémentation triviale.