Bonjour,
Une méthode récursive est une méthode qui s'appelle elle-même, le but étant de faciliter la tâche du programmeur en lui réduisant l'utilisation de boucles.
Néanmoins cette notion reste floue et je n'arrive pas à la mettre en application sur un arbre binaire où elle est abondamment utiliser.
Merci d'avance pour votre aide
salut, c'est normal que ça te paraîsse compliqué si tu as programmé pendant longtemps avec juste des boucles. Moi la récursivité je n'aime pas en abuser mais c'est vrai que pour les arbres binaires c'est indispensable.
on montre souvent cet exemple en premier (cours en fac, livre de Java) sur le produit factoriel
c'est à dire comment calculer 4! (4*3*2*1)
pulic int facto(int i){
(i > 1) ? return i*facto(--i) : return 1;
// ou si tu préfère if(i>1) return i*facto(--i); else return 1;
}
qu'est-ce que ce code fait ? Il suffit d'être le programme
on appelle facto(4) :
ça c'est pour un exemple simple mais c'est de partout pareil, en fait toutes les fonctions s'imbriquent, ce qui fait que la première fonction appellée est toujours en attente des autres qu'elle appelle pour avoir le résultat
pour un arbre il faut que tu réfléchisses pour trouver la taille, la hauteur, la longueur de cheminement (...) en récursif
par exemple pour la taille tu vas appeller la fonction à la racine
la rcine va dire d'appeller la taille() à ses deux fils
SI le fils est vide on retourne 0
SI l'arbre n'a pas de fils (arbre vide) on retourne 1
SINON tu retourne la fonction sur les deux fils + 1
si tu as un prôblème j'ai déjà fais un programme pour ça
mais java n'est pas optimisé pour la récursivité
donc ne pas abuser (tout du moins en java )
notion de récursivité
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.