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 :

Parcours d'arbre et sauvegarde en binaire [Non suivi]


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut Parcours d'arbre et sauvegarde en binaire
    Bonjourn

    Voila, j'ai créé un arbre binaire (correspond à l'algorithme d'Huffman) et je voudrais le parcourir de telle façon a quoi correspond chaque branche :

    racine
    | \
    | | \
    a b c

    a = 1 , b = 01 , c = 00

    le parcours de l'abre n'est pas un problème j'arrive à le faire (je le fait de façon récurcive), j'arrive également à afficher de façon basique, juste pour vérifier comment ça évolue :

    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
     
     
     typedef struct PHuff{
             struct PHuff* lg;
             struct PHuff* ld;
             int verif;
             char ascii;
             int freq;      
      } Huff ;
     
     
    void fonction_arbre(Huff *arbre , int valeur)
    {
         if((arbre->lg == NULL) && (arbre->ld == NULL))
        { printf("%c : %d\n",arbre->ascii,valeur);}
        else{
             if (arbre->lg !=NULL)    
           fonction_arbre(arbre->lg, valeur*10+1);
             if (arbre->ld !=NULL)           
           fonction_arbre(arbre->ld, valeur*10);
        }
    }
    avec le code qui commencera forcemment par un 1 (je repete, juste pour vérifier^^), le problème est que je ne vois absolument pas comment je peux le faire en binaire. Si quelqu'un pouvez m'aider, en esperant que mon explication ne soit pas trop confuse.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Personne pour m'aider ?

  3. #3
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Il faut que tu utilises les fonctions fwrite pour écrire en binaire.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Je pensais bien utiliser cette fonction également , mais ce qui me gêne, c'est l'étape précédente.
    Quand je parcours mon arbre a gauche c'est un 0 et a droite un 1, ce qui en fin de branche me donne (par exemple) a = 100010
    Et ça , je ne vois pas comment je pourrais l'exprimer en binaire

  5. #5
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    En fait, il faut que tu te crées un buffer relativement simple (sur un char par exemple), il faut qu'au fur et à mesure que tu parcours ton arbre que tu remplisse ce buffer, une fois que ce buffer est plein, tu l'écris dans ton fichier. Pour les bits qui te restent à la fin, il faut que tu choisisses des bits de bourrage (0 ou 1)

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    est ce que je peux abuser et te demander un petit exemple ?
    Parce que quand je regarde la déf de la fonction , je vois pas trop comment faire en binaire. :s

    Je vois pas , mais alos pas du tout comment remplir mon buffer

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Un petit up..

  8. #8
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    , je vois pas trop comment faire en binaire.
    Ce que je comprends pas, c'est ce que tu entends par là.
    - Ton code permet d'avoir la valeur binaire exprimée sous la forme d'une chaîne de caractères
    - Si tu veux la valeur binaire sous forme d'un entier, multiplie par 2 au lieu de 10
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    bah dans le code que je montre, je sauvegarde rien du tout , je ne fais qu'afficher, je ne vois pas comment remplir mon buffer en binaire.

Discussions similaires

  1. Les parcours d arbres binaires et de graphes
    Par BaygonV dans le forum Débuter
    Réponses: 1
    Dernier message: 08/02/2014, 01h01
  2. Parcours d'arbre binaire iteratif et postfixe
    Par coyotte507 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 22/09/2008, 19h12
  3. Parcours d'arbre binaire
    Par canary dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 29/01/2008, 14h41
  4. Parcours d'arbre sans récursivité
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 12/04/2005, 13h57

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