Itérateur sur un arbre binaire de recherche
delfre56
Messages postés
350
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je dois écrire une classe pour itérer sur un arbre binaire de recherche. J'ai déjà créé un classe BinarySearchTreeNode<E>, qui représente les nœuds de l'arbre. Cette classe contient un méthode isLeaf(), qui détermine si le nœud est une feuille (sans enfant donc), et je m'en suis servit pour le hasNext. Maintenant, je dois écrire le next, et je ne vois pas trop ce que je dois renvoyer : fils de droite ? De gauche ? Comment choisir ?
Merci pour vos réponses :)
je dois écrire une classe pour itérer sur un arbre binaire de recherche. J'ai déjà créé un classe BinarySearchTreeNode<E>, qui représente les nœuds de l'arbre. Cette classe contient un méthode isLeaf(), qui détermine si le nœud est une feuille (sans enfant donc), et je m'en suis servit pour le hasNext. Maintenant, je dois écrire le next, et je ne vois pas trop ce que je dois renvoyer : fils de droite ? De gauche ? Comment choisir ?
Merci pour vos réponses :)
A voir également:
- Itérateur sur un arbre binaire de recherche
- Binaire - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
2 réponses
Salut,
Il me semble que next renvois la valeur qui suit donc je ne pense pas que c'est ce que tu veuille non?
Il me semble que next renvois la valeur qui suit donc je ne pense pas que c'est ce que tu veuille non?
Bonjour,
Si on parle d'un arbre de recherche parler de HashMap ou HashSet est hors sujet (les tables de hachage sont une autre structure de données qui n'a rien à voir), les TreeMap et TreeSet seraient plus à propos mais je pense qu'il s'agit ici d'un exercice où il faut tout refaire, sinon ce serait très facile...
Bref, un arbre de recherche contient des données triées du plus petit au plus grand, le fonctionnement de l'iterator doit permettre de récupérer ces données dans ce même ordre, sinon on perd tout l'intérêt du tri.
La confiance n'exclut pas le contrôle
Si on parle d'un arbre de recherche parler de HashMap ou HashSet est hors sujet (les tables de hachage sont une autre structure de données qui n'a rien à voir), les TreeMap et TreeSet seraient plus à propos mais je pense qu'il s'agit ici d'un exercice où il faut tout refaire, sinon ce serait très facile...
Bref, un arbre de recherche contient des données triées du plus petit au plus grand, le fonctionnement de l'iterator doit permettre de récupérer ces données dans ce même ordre, sinon on perd tout l'intérêt du tri.
La confiance n'exclut pas le contrôle
Si tu travailles sur la 1ère case et que tu dis next, tu travaillera sur une donnée de la 2ème case (à vérifier quand même je ne suis pas un expert).
Pour ce que tu veux faire, pourquoi ne pas déclarer 2 entité? Une pour la droite, une pour la gauche et une entité contenant uniquement 1 bit qui en fonction de son état te fera allé à droite ou à gauche?
Si tu fais ce que je viens de dire, il faudra que tu utilises un HashMap (je ne sais pas si c'est comme ça qu'on l'écrit).