Enregistrement d'un arbre binaire
kary
-
random Messages postés 1612 Statut Membre -
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
A voir également:
- Enregistrement d'un arbre binaire
- Binaire - Guide
- Comment couper un enregistrement audio - Guide
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Enregistrement - Guide
- Enregistrement d'écran - Guide
3 réponses
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
¤
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
¤
Hello !
Evite de réinventer la roue !
Je te conseille de bien étudier les techniques classiques de "serialization/deserialization" (en anglais) de données.
Tu peux trouver une mine d'informations à cette adresse :
http://www.parashift.com/c++-faq-lite/serialization.html
Bonne lecture. ;)
Evite de réinventer la roue !
Je te conseille de bien étudier les techniques classiques de "serialization/deserialization" (en anglais) de données.
Tu peux trouver une mine d'informations à cette adresse :
http://www.parashift.com/c++-faq-lite/serialization.html
Bonne lecture. ;)
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
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