Structure de données
Fermé
smeranson
-
26 mai 2013 à 22:58
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 27 mai 2013 à 15:58
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 27 mai 2013 à 15:58
Bonjour,
Comment créer un arbre généalogique en structure de données?
Comment créer un arbre généalogique en structure de données?
A voir également:
- Structure de données
- Supprimer les données de navigation - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Reinstaller windows sans perte de données - Guide
- Trier des données excel - Guide
- Structure d'un rapport de stage - Guide
4 réponses
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
27 mai 2013 à 15:58
27 mai 2013 à 15:58
Bonjour,
Ça peut être fait avec une méthode simple liste chainée du type :
globalement donnerait :
Comme ce sont des pointeurs deux arbres différents peuvent contenir des pointeurs/adresses identiques de type parents (pas de copie des données), M&F sont les arrières grands parents de PF_a, et EM_a la mère de PF_a redirige sur un autre arbre par le biais de externe dans lequel se trouve le même pointeur EM_a ça m'a l'air fonctionnel enfin faudrait ajouter quelques trucs pour cas d'adoption ou autres.
Pour l'utilisation j'ajouterai au départ tous les couples connus de la famille ayant eu progéniture ou progéniture sans enfants dans une unique liste parents (remplir nom+prenom+ou sans externe) en utilisant le pointeur next fait uniquement pour ça (lister tout le monde), puis par sélection (en mode utilisateur,console ou gui) je créerai les liens entre eux en faisant pointer avec externe et enfants ça fera le tri et l'arbre généalogique prendra forme, au final on saura qui sont les parents et les enfants, etc.
Ça peut être fait avec une méthode simple liste chainée du type :
struct parents{ char *male,*femelle; /* contenu "nom+prenom"/"externe+nom+prenom" */ struct parents *externe; /* pointe vers une liste parents externes' */ struct parents *enfants; struct parents *next; /* pour simplifier voir plus bas l'explication */ };
globalement donnerait :
[E=externe/changement nom etc,P=progéniture,M=mâle,F=femelle] M&F | |- PM | |- PM&EF //l'externe F redirige vers un arbre semblable | |- PF&EM_a //externe M fait la même chose etc | | |- PF_a | | | |- PM&EF | |- PF&EM |- PF |- PM
Comme ce sont des pointeurs deux arbres différents peuvent contenir des pointeurs/adresses identiques de type parents (pas de copie des données), M&F sont les arrières grands parents de PF_a, et EM_a la mère de PF_a redirige sur un autre arbre par le biais de externe dans lequel se trouve le même pointeur EM_a ça m'a l'air fonctionnel enfin faudrait ajouter quelques trucs pour cas d'adoption ou autres.
Pour l'utilisation j'ajouterai au départ tous les couples connus de la famille ayant eu progéniture ou progéniture sans enfants dans une unique liste parents (remplir nom+prenom+ou sans externe) en utilisant le pointeur next fait uniquement pour ça (lister tout le monde), puis par sélection (en mode utilisateur,console ou gui) je créerai les liens entre eux en faisant pointer avec externe et enfants ça fera le tri et l'arbre généalogique prendra forme, au final on saura qui sont les parents et les enfants, etc.
Swan_swano
Messages postés
899
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2014
124
26 mai 2013 à 23:30
26 mai 2013 à 23:30
Salut,
c'est pas banale...
j'utiliserais plutôt une base de donnée.
car là pour les liens de patentée et compagnie ça vas pas être évident...
c'est pour quelle utilisation ? modifications, visualisations, nombre de personnes dans la famille ?
c'est pas banale...
j'utiliserais plutôt une base de donnée.
car là pour les liens de patentée et compagnie ça vas pas être évident...
c'est pour quelle utilisation ? modifications, visualisations, nombre de personnes dans la famille ?
Swan_swano
Messages postés
899
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2014
124
26 mai 2013 à 23:45
26 mai 2013 à 23:45
???
non en fait je voulais juste savoir si ça allais faire une grosse base ou pas :-/
non en fait je voulais juste savoir si ça allais faire une grosse base ou pas :-/