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 :

Créer un arbre binaire complet en C


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Par défaut Créer un arbre binaire complet en C
    J'ai un gros problème!
    Je n'arrive pas à créer un arbre binaire complet de telle sorte que tous les noeuds aient exactement deux fils (un fils de droite, un fils de gauche). Voici celui que je propose. Il ne passe que sur l'ordinateur de ma soeur et pas sur le mien (chose que je ne comprends pas non plus).
    Merci de m'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
    //etablissons la structure de notre arbre binaire
     
    typedef struct num
    {
           int valeur;
           struct num *fils_gauche;
           struct num *fils_droit;
           }arbre;
     
    arbre *creerarbre(arbre *A, int x, int n)
    {
          if (A==NULL)
          {
                      A=(arbre*)malloc(sizeof(arbre));//creation de l'arbre
                      A->valeur=x;    //la racine prend une valeur x
                      A->fils_gauche=NULL; //le fils de gauche pointe sur null
                      A->fils_droit=NULL; //le fils de droit pointe sur null
                      n++; //on incrémente le compteur pour atteindre le nombre de niveau souhaité
                      };
          if (n<=7)
          {
                 A->fils_gauche=creerarbre(A->fils_gauche,0,n); //on appelle la fonction pour creer le sous arbre ayant le fils de gauche comme racine
                 A->fils_droit=creerarbre(A->fils_droit,1,n);//on appelle la fonction pour creer le sous arbre ayant le fils de droit comme racine
                   };
          return A;
    }
     
    void parcoursprefixe(arbre *P)
    {
         if(P != 0)
         {
              printf("%d",P->valeur);
              parcoursprefixe(P->fils_gauche);
              parcoursprefixe(P->fils_droit);
              };
    }
     
    int main()
    { 
          arbre *R;
          R=(arbre*)malloc(sizeof(arbre));
          R=creerarbre(R,0,1);
          parcoursprefixe(R);
          getch();
     
    }
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Arbre binaire localement complet
    Par abysr dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 04/05/2015, 11h19
  2. Créer un arbre binaire et l'afficher
    Par hellowo dans le forum Débuter
    Réponses: 9
    Dernier message: 19/03/2015, 21h38
  3. Afficher un arbre binaire avec sa structure
    Par PhoneKilleR dans le forum C
    Réponses: 7
    Dernier message: 23/04/2008, 23h24
  4. Arbre binaire
    Par Heaven dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 02/02/2004, 19h01
  5. [LG]probleme de creation arbre binaire
    Par jsaviola dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2004, 20h57

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