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 :

probleme parcours d'un arbre par couche et affichage


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Par défaut probleme parcours d'un arbre par couche et affichage
    Bonjour à tous ,


    Je bosse actuellement sur un projet de développement en rapport avec les poisson , bref ça on s'en fou
    J'ai besoin d'aide en ce qui concerne l'affichage d'un arbre par niveau ou couche

    voici mon code pour afficher
    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
    void plargeur(Tree *  a)
     {
       // if(a==NULL)
    // {
       //     return ;
       // }
     
        File **f;
     
       file_enqueue(f,a->root);
     
        while(f!=NULL) 
    {
           Tree *e;double noeud=0;
         noeud=  file_dequeue(f);
    printf("%f\n",noeud);
            if(e->left_child!=NULL)
     {
                 file_enqueue(f,(e->left_child)->root);
            }
            if(e->right_child!=NULL)
     {
                file_enqueue(f,(e->right_child)->root);
            }
        }
    }
    et voici le code qui gere la file (pour parcourir l'arbre)


    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
    51
    52
    53
    54
    55
    #include <iostream>
    #include <string>
     
    using namespace std;
     
     
    typedef struct File
    {
    double donnee;
        struct File *suivant;
    } File;
     
     
    void file_enqueue(File **p_file,double donnee)
    {
      File * p_nouveau =(  File *) malloc(sizeof (File));
        if (p_nouveau != NULL)
        {printf("prout\n");
            p_nouveau->suivant = NULL;
            p_nouveau->donnee = donnee;
            if (*p_file == NULL)
            {
            *p_file = p_nouveau;
      }
            else
     
           {
                File *p_tmp = *p_file;
                while (p_tmp->suivant != NULL)
                {
                    p_tmp = p_tmp->suivant;
                }
                p_tmp->suivant = p_nouveau;
           }
        }
    }
     
     
    double file_dequeue(File **p_file)
    {
      double ret = -1;
        /* On teste si la file n'est pas vide. */
        if (*p_file != NULL)
        {
            /* Création d'un élément temporaire pointant vers le deuxième élément de la file. */
            File *p_tmp = (*p_file)->suivant;
            /* Valeur à retourner */
            ret = (*p_file)->donnee;
            /* Effacement du premier élément. */
            free(*p_file), *p_file = NULL;
            /* On fait pointer la file vers le deuxième élément. */
            *p_file = p_tmp;
        }
        return ret;
    }

    L'erreur est une erreur de segmentation , l'erreur vient peut-etre du pointeur File ** f qui n'est pas init je ne sais pas j'attend votre aide merci à tous

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Bonjour et beinvenue sur le forum

    mais:
    1. ceci n'est pas du c++, mais du c (tu n'es donc pas sur le bon forum)
    2. tu ne donnes pas assez de détails pour que l'on puisse t'aider. Il faut, au moins, fournir le message d'erreur exact et spécifier la ligne qui génère l'erreur.
    3. il existe un bouton (celui avec le #) ou la balise [code] pour formatter un peu ton message.

    Cordialement.

Discussions similaires

  1. probleme de connection a messenger par cable reseau
    Par punks dans le forum Développement
    Réponses: 2
    Dernier message: 10/02/2006, 15h55
  2. parcours d'un arbre en sql
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h10
  3. Gestion d'arbres par représentation intervallaire
    Par brice01 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/01/2006, 21h20
  4. Probleme avec passage de variables par formulaires
    Par cortex007 dans le forum Langage
    Réponses: 5
    Dernier message: 17/12/2005, 14h08
  5. Ordre de parcours de l'arbre...
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 01/12/2002, 18h41

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