somme des noeuds d'un arbre - Java - Programmation
Marsh Posté le 03-11-2007 à 18:51:06
En même temps, t'as pas posté de code, t'as pas posté la structure de l'arbre, t'as pas posté où tu bloquais exactement et tu nous a pas dit quelles pistes tu avais déjà explorées...
Donc il peut difficilement t'aider plus que ça, à part à la limite en te disant qu'un arbre ça s'explore récursivement.
Marsh Posté le 03-11-2007 à 19:15:43
Ben l'arbre c'est un arbre binaire quelconque...
et j'ai quelques pistes:
static int somme(Arbin<Integer> a ) {
if(!a.estVide()) {
return a.racine.intValue() + ag.somme(a.ag()); }
}
qu'en pensez-vous ?
Marsh Posté le 03-11-2007 à 19:24:05
J'en pense que j'ai oublié ma boule de crystal ce matin
Marsh Posté le 03-11-2007 à 19:47:20
Code :
|
Marsh Posté le 03-11-2007 à 20:05:09
Comment tu fais pour avoir besoin de 3 classes différentes pour un pauvre arbre
Et c'est quoi l'intérêt d'utiliser des noms aussi cryptique que 'ad' et 'ag', peur de s'user les doigts
Et pourquoi il en manque des bouts
Marsh Posté le 03-11-2007 à 20:16:55
Code :
|
aidez-moi svp... c'est un arbre binaire équilibré (l'exemple n'était que pour vous montrez les noeuds que l'on cherchent)
si e est un Integer, alors e.intValue() donne la valeur de type int correspondante.
j'ai écris ça, est-ce que ça convient ?
Code :
|
Marsh Posté le 03-11-2007 à 20:20:33
non
Marsh Posté le 03-11-2007 à 20:31:23
si tu dis non c'est que t'as une idée alors...
aide moi sinon passe ton chemin car tu ne fais que de me remballer
Marsh Posté le 03-11-2007 à 20:37:09
bibi182 a écrit : si tu dis non c'est que t'as une idée alors... |
oui
bibi182 a écrit : aide moi sinon passe ton chemin car tu ne fais que de me remballer |
Je t'ai déjà dit qu'un arbre ça s'explorait récursivement, et demandé pourquoi tu avais besoin de 3 classes pour construire un arbre d'entiers alors qu'une seule suffit
Marsh Posté le 03-11-2007 à 20:43:48
ben oui mais que proposes-tu comme code alors ?
j'ai appliqué ce que tu m'as dis mais ça ne convient toujours pas alors aide moi encore plus ?
Marsh Posté le 03-11-2007 à 20:51:03
bibi182 a écrit : ben oui mais que proposes-tu comme code alors ? |
Code :
|
mais je suis pas persuadé que ça t'aide beaucoup
bibi182 a écrit : j'ai appliqué ce que tu m'as dis |
non
bibi182 a écrit : mais ça ne convient toujours pas alors aide moi encore plus ? |
je suggère que tu traces ce que ton code doit faire à la main et que tu te demandes ce dont tu as besoin à chaque étape.
Marsh Posté le 04-11-2007 à 11:03:30
Code :
|
qu'en pensez-vous ?
Marsh Posté le 04-11-2007 à 12:16:56
Code :
|
Bien (si #intValue() renvoie la valeur stockée dans une node de ton arbre), mais il faudrait peut-être tester si tu as un ag().
Code :
|
Non, ça c'est géré par les deux appels récursifs derrière, je vois pas ce que ça vient foutre ici
Code :
|
bien
Marsh Posté le 04-11-2007 à 13:27:34
Code :
|
#intValue() renvoie bien la valeur stockée dans un noeud de l'arbre
Marsh Posté le 04-11-2007 à 13:54:22
À part si tu es sûr que ton arbre est balancé, j'aurais séparé a.ag().intValue() et somme(a.ag()) + somme(a.ad()) (tu peux avoir un sous-arbre droit et pas de sous-arbre gauche).
Accessoirement, #estVide sert à quoi? À te dire si une node a une valeur? Ca a aussi un rapport avec les sous-arbres ou pas? Possible d'avoir son code?
Marsh Posté le 04-11-2007 à 14:06:08
je ne vois ce que tu veux dire par
Citation : séparé a.ag().intValue() et somme(a.ag()) + somme(a.ad()) |
pour #estVide(), c'est une fonction booléenne qui renvoie true si l'arbre est vide, false sinon. et elle peut s'appliquer aux sous-arbres
Marsh Posté le 04-11-2007 à 14:19:27
bibi182 a écrit : je ne vois ce que tu veux dire par
|
Code :
|
Marsh Posté le 04-11-2007 à 14:28:38
Code :
|
ça yé? dis moi que c'est bon stp...
Marsh Posté le 04-11-2007 à 14:41:02
Teste le sur divers arbres, il n'y a que comme ça que tu sauras si ça a l'air bon
Marsh Posté le 03-11-2007 à 16:20:46
Bonjour,
je dois écrire une fonction récursive static int somme(Arbin<Integer> a ) qui calcule et retourne la somme des valeurs des nœuds (de l’arbre binaire a) qui sont fils gauches d’un nœud de a. Par exemple la somme des noeuds en gras sur cet arbre:
je galère!!
merci d'avance pour tout...