Java Language Types de récursivité


Exemple

La récursivité peut être classée comme récursion de tête ou récursivité de queue , selon l'endroit où l'appel de méthode récursif est placé.

Dans la récursion principale , l'appel récursif, lorsqu'il se produit, intervient avant tout autre traitement dans la fonction (pensez à ce qu'il se passe en haut ou en bas de la fonction).

Dans la récursion de la queue , c'est le contraire: le traitement a lieu avant l'appel récursif. Choisir entre les deux styles récursifs peut sembler arbitraire, mais le choix peut faire toute la différence.

Une fonction avec un chemin avec un seul appel récursif au début du chemin utilise ce qu'on appelle la récursion de la tête. La fonction factorielle d'une exposition précédente utilise la récursion de la tête. La première chose qu'il fait une fois qu'il détermine que la récursivité est nécessaire est de s'appeler avec le paramètre décrémenté. Une fonction avec un seul appel récursif à la fin d'un chemin utilise la récursion de queue.

public void tail(int n)              public void head(int n)
{                                       {
   if(n == 1)                             if(n == 0)
      return;                                return;
   else                                   else
      System.out.println(n);                 head(n-1);

   tail(n-1);                              System.out.println(n);
}                                        }

Si l'appel récursif se produit à la fin d'une méthode, cela s'appelle une tail recursion . La récursion de la queue est similar to a loop . La method executes all the statements before jumping into the next recursive call .

Si l'appel récursif se produit au beginning of a method, it is called a head recursion . La method saves the state before jumping into the next recursive call .

Référence: La différence entre la récursion tête et queue