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 :

Implémentation arbres binaires


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Implémentation arbres binaires
    Bonjour à tous,

    je cherche à implémenter les arbres en C. J'ai utilisé la définition de structure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef struct BinaryTree BinaryTree;
     
    struct BinaryTree
    {
        int x;
        BinaryTree* G;
        BinaryTree* D;
    };
    Malheureusement ça ne marche pas, et pourtant j'ai trouvé la même dans un bouquin....

    Voilà l'erreur que j'obtiens:
    error: redefinition of typedef 'BinaryTree' (pour la première ligne)

    Est-ce que quelqu'un aurait une explication svp?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Salut

    Le problème vient d'ailleurs. Donne le code entier.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    En fait comme tu m'as dit que cela devait venir du reste du code, j'ai tout recommencé, et maintenant ça marche. Bizarre...

    Merci quand même!

    Et désolé pour ce post un peu inutile!

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par Arthur17 Voir le message
    En fait comme tu m'as dit que cela devait venir du reste du code, j'ai tout recommencé, et maintenant ça marche. Bizarre...
    Ben, il faut lire les message que le compilateur te renvoie :

    error: redefinition of typedef 'BinaryTree' (pour la première ligne)

    Ça veut bien dire ce que ça veut dire « redéfinition du typedef « BinaryTree » ». Donc, soit tu as écrit deux fois ton typedef dans ton code, soit tu l'as défini dans un *.h que tu as inclus deux fois.

    D'une manière générale, donner le même nom à sa structure et à un typedef, ce n'est pas interdit, mais c'est risquer des ennuis.

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Donc, soit tu as écrit deux fois ton typedef dans ton code, soit tu l'as défini dans un *.h que tu as inclus deux fois.
    Dans le cas du fichier d'entête inclus deux fois, c'est pour cela qu'on utilise des gardes contre les inclusions multiples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #ifndef H_TC_MON_FICHIER_ENTETE__
    #define H_TC_MON_FICHIER_ENTETE__
     
    /* ... */
     
    #endif /* H_TC_MON_FICHIER_ENTETE__ */
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    Dans le cas du fichier d'entête inclus deux fois, c'est pour cela qu'on utilise des gardes contre les inclusions multiples:
    Oui mais chaque chose en son temps :-) Je suis curieux de savoir d'abord si c'est bien le cas et si c'est justifié ensuite.

Discussions similaires

  1. [Turbo Pascal] Implémentation d'un arbre binaire
    Par cm-punk dans le forum Turbo Pascal
    Réponses: 0
    Dernier message: 25/04/2014, 21h18
  2. [Turbo Pascal] Implémentation d'un arbre binaire de recherche
    Par Ema1714 dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 11/05/2013, 07h59
  3. Erreur implémentation d'arbre binaire de recherche.
    Par Pallas. dans le forum Débuter
    Réponses: 2
    Dernier message: 24/03/2011, 19h27
  4. Réponses: 2
    Dernier message: 13/02/2010, 16h45
  5. Afficher un arbre binaire avec sa structure
    Par PhoneKilleR dans le forum C
    Réponses: 7
    Dernier message: 23/04/2008, 23h24

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