Partage
  • Partager sur Facebook
  • Partager sur Twitter

notion de récursivité

    24 août 2009 à 9:50:29

    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 :)

    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2009 à 21:56:44

      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) :

      facto(4) = 4 * facto(3)
      facto(4) = 4 * 3 * facto(2)
      facto(4) = 4 * 3 * 2 * facto(1)
      facto(4) = 4 * 3 * 2 * 1
      facto(4) = 4 * 3 * 2
      facto(4) = 4 * 6
      facto(4) = 24

      ç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
      • Partager sur Facebook
      • Partager sur Twitter
        25 août 2009 à 0:53:08

        mais java n'est pas optimisé pour la récursivité :(
        donc :p ne pas abuser (tout du moins en java )
        • Partager sur Facebook
        • Partager sur Twitter

        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.
        • Editeur
        • Markdown