Enregistrement d'un arbre binaire
Fermé
kary
-
15 déc. 2004 à 15:47
random Messages postés 1612 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 30 mars 2006 - 20 déc. 2004 à 08:47
random Messages postés 1612 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 30 mars 2006 - 20 déc. 2004 à 08:47
A voir également:
- Enregistrement d'un arbre binaire
- Codage binaire - Guide
- Enregistrement vidéo écran - Guide
- Youtube enregistrement vidéo - Guide
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Enregistrement musique mp3 - Télécharger - Streaming audio
3 réponses
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
15 déc. 2004 à 18:40
15 déc. 2004 à 18:40
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. ;)
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
20 déc. 2004 à 08:47
20 déc. 2004 à 08:47
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