Enregistrement d'un arbre binaire

kary -  
random Messages postés 1612 Statut Membre -
Bonjour s'il vous plait je voudrai savoir comment enregistrer un arbre binaire dans un fichier texte ou biniare en langage c et pouvoir reconstituer mon arbre binaire à partir des informations du fichier enfin d'obtenir l'arbre de départ? Merçi

3 réponses

  1. blurk Messages postés 493 Date d'inscription   Statut Membre 160
     
    salut
    tu fais comme tu veux du moment que tu lis de la même manière que tu écris, et que tu connais le nombre d'éléments de ton arbre, où sinon
    que tu peux détecter une fin de fichier correcte. (correspond au format demandé ou balise détectée)
    C'est toi qui définit l'ordre où sont enregistré les éléments.
    La seule difficulté est de trouver un algo qui parcours tous les éléments, et cela dépend de la méthode utilisée pour construire l'arbre.
    Liste chainée ? tableau cartésien ? concaténation à l'aide de balises ?
    cordialement
    ¤
    0
  2. random Messages postés 1612 Statut Membre 155
     
    on peu facilement passer d'une structure d'arbre binaire à une structure de matrice
    un arbre binaire est de la forme
    1.1
    2.1 2.1
    3.1 3.2 3.3 3.4
    4.1 4.2 4.3 4.3 4.4 4.5 4.6 4.7 4.8
    pour définir un noeud il faut deux données sa profondeur et son ordre
    ainsi le noeud 4.3 a 4 pour profondeur et 3 pour ordre
    il suffit de trouver une correspondance dans un système array de base 1
    ceci se fait avec quatre fonctions
    une fonction adresse
    fonction adresse(profondeur,ordre)
    adresse=(2^(profondeur-1))-1+ordre
    fin
    une fonction pere te permet de trouver le pere
    function pere(profondeur,ordre)
    si rang est pair alors pere=((profondeur-1)+((rang/20)
    sinon pere=((profondeur-1))+((rang+1)/20)
    fin
    une fonction premierfils(prondeur,ordre) te donnera le premier fils
    premierfils=((rang+1)+(((ordre*2)-1)/10
    fin
    une fonction dernier fils(profondeur,ordre) te donnera le dernier fils
    dernierfils=(rang+1)+(ordre*2/10)
    fin
    tu disposes ainsi d'un ensemble lineaire
    apres à toi de voir
    0