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
Bonjour,

Comment créer un arbre généalogique en structure de données?


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
Bonjour,
Ç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.
1
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
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 ?
0
nombre de personne d'une famille
0
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
???

non en fait je voulais juste savoir si ça allais faire une grosse base ou pas :-/
0