bonjour,
en C, que désignent les structures récursives (à quoi cela sert ?), pouvez-vous me donner un exemple de code, svp ?
merci.
bonjour,
en C, que désignent les structures récursives (à quoi cela sert ?), pouvez-vous me donner un exemple de code, svp ?
merci.
En C, personnellement, j'ai entendu parlé des listes chaînées et des fonctions récursives, mais jamais de "structures récursives".
Liste chaînées :
Une liste chaînée, c'est une liste dont chaque élément pointe sur l'élément suivant.
Tu peux avoir par exemple un type pile :
Ici, le champ "next" pointera sur l'élément suivant, ou sur NULL. Ce système permet de pouvoir ajouter et supprimer des éléments sans faire des décalages dans un tableau à tout bout de champs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 typedef struct Stack_int { int value; struct Stack_int *next; } Stack_int;
Fonction récursive :
Une fonction récursive est simplement une fonction qui s'appelle elle-même, par exemple on peut écrire la fonction factoriel comme ça :
Il est possible de transformer ce genre de fonction en une simple boucle, mais selon les cas il est plus facile de faire une fonction récursive. Le problème de ce système c'est que si le nombre d'appels à factoriel() est grand, la pile d'exécution peut être surchargée et faire planter le programme. Il faut aussi veiller à ce qu'il y ait toujours une condition de sortie dans une fonction récursive. Ici, la condition de sortie étant if(n <= 1).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int factoriel(int n) { if(n <= 1) return 1; else return n * factorielle(n - 1); }
Partager