IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

structures récursives en C


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 67
    Par défaut structures récursives en C
    bonjour,
    en C, que désignent les structures récursives (à quoi cela sert ?), pouvez-vous me donner un exemple de code, svp ?
    merci.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 309
    Par défaut
    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 :
    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;
    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.

    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 :

    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);
    }
    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).

Discussions similaires

  1. [MySQL] Requête SQL pour charger une structure récursive
    Par FMaz dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/07/2009, 05h00
  2. [XPath] structure récursive
    Par kelenyo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/10/2008, 15h45
  3. Structure récursive ou simple sous-requête ?
    Par RomainVALERI dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/06/2008, 09h10
  4. Problème de structure "récursive"
    Par Pxnet dans le forum C
    Réponses: 5
    Dernier message: 21/01/2007, 17h20
  5. [XSD] structure récursive et clés, un casse-tête
    Par judpoir dans le forum Valider
    Réponses: 7
    Dernier message: 17/01/2007, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo