Besoin d'aide svp - Java - Programmation
Marsh Posté le 26-07-2006 à 16:01:41
Il est etrange ton arbre.
Je vois pas l'interet de la classe internalNode
Sinon en java, tout est refence.
Tu veux faire quoi ? modifie leNoeud ? alors il ne faut pas faire un new dans ton if, mais plutot faire un set sur les propretes que tu veux changer
Code :
|
Marsh Posté le 26-07-2006 à 16:07:33
En fait la classe InternalNode me sert parce que je n'ai pas le meme type de donnée entre LeafNode et InternalNode (dans LeafNode mon type de donnée est un tableau de float et dans l'autre, c'est un entier).
J'ai voulu faire ca plus proprement, mais je pourrai peut-etre faire juste une seule classe ou j'aurais trois variables :
- une qui m'indique quel est le type du noeud
- un tableau de float (utilisé par exemple quand la première variable est à vrai)
- un entier (utilisé inversement quand la première variable est à false)
Je pense que ca devrait marcher mais je ne sais pas si c'est le meilleur choix......
Marsh Posté le 26-07-2006 à 16:22:37
C'est juste que dans l'arbre je stocke deux types de données.
Petit résumé rapide (ca risque de pas etre très clair car moi j'ai du mettre 3 semaines a comprendre tout ca) :
J'ai un premier arbre qui stocke des données sous forme de tableaux d'entiers.
Lorsque dans ce premier arbre je veux insérer une nouvelle donnée (nouveau tableau donc), et qu'il n'y a plus de place sur le noeud (un noeud peut avoir par exemple 3 entrées qui contiennent chacune une donnée), je dois "séparer" ces données pour les insérer sur deux noeuds.
Pour les séparer, je fais/calcule une "représentation graphique" en n dimensions (suivant les dimensions du tableau) et je choisis la meilleure répartition en fonction d'un "axe" sur la représentation.
Lorsque ceci a été fait, dans mon arbre binaire, j'insère sur un noeud le numéro de l'axe et les deux fils de ce noeud contiennent les répartitions.
Voila je sais pas si j'ai été clair.
Sinon t'as pas d'idées sur comment je pourrai résoudre mon problème stp?
Marsh Posté le 26-07-2006 à 16:26:50
merci de mettre un titre correct à ton topic.
Marsh Posté le 27-07-2006 à 17:23:12
mick8569 a écrit : En fait la classe InternalNode me sert parce que je n'ai pas le meme type de donnée entre LeafNode et InternalNode (dans LeafNode mon type de donnée est un tableau de float et dans l'autre, c'est un entier). |
La solution t'a été donnée dans le message précédent.
Utilise des getter et des setter pour modifier les attributs leNoeud,sonLeft et sonRigth
ou bien ne redeclare pas une variable portant le meme nom que tes attributs
Code :
|
voila
Marsh Posté le 26-07-2006 à 15:53:27
Salut à tous!
Voila mon problème :
Je suis en train de modéliser un arbre (binaire) en java.
J'ai donc une classe que l'on appelera arbre.
Pour les noeuds c'est un peu spécial, car il y a deux types de noeuds dans l'arbre. j'ai donc crée trois classes :
- une classe Mère : Node
- Deux classes Filles : InternalNode et LeafNode
et dans une fonction de la classe Arbre, il faudrait que je modifie les noeuds :
Le problème est que lorsque j'appelle cette fonction Modif, je n'ai pas les résultats des modifications (par exemple j'initialise avec le noeud root et après l'appel de cette fonction le noeud root est encore un noeud feuille alors que je voudrais qu'il soit du type InternalNode).
Je comprends très bien le problème puisqu'à mon avis à la fin de cette fonction les variables (leNoeud, sonLeft et sonRight) sont détruites ce qui fait que je ne récupère rien.
Mais je ne vois pas comment faire pour pouvoir récupérer tout ce que je veux (en C++, j'utiliserai des pointeurs mais la...).
Voila j'espere que je me suis bien fait comprendre et si quelqu'un sait comment faire, je suis preneur!
Merci d'avance!