Difficile de trouver les bonnes structures de données
Bonjour,
j'ai des algorithmes à développer (plusieurs). Qui travaillent sur les mêmes données.
Ces données sont représentées par des structures, stockées dans des tableaux. Certaines structures ont des références vers d'autres.
Ma question est, vaut-il mieux faire ceci :
Code:
1 2 3 4 5 6 7
| struct machin {
struct bouh *bouh;
};
struct bouh {
attribut_essentiel;
}; |
ou :
Code:
1 2 3 4 5 6 7
| struct machin {
int bouh; /* bouh est l'indice dans un tableau qui contient l'ensemble des "bouh" */
};
struct bouh {
attribut_essentiel;
}; |
Il existe un tableau qui contient des "machin", et un tableau qui contient des "bouh".
La première méthode me paraît plus "standard".
Mais avec la seconde, l'avantage c'est qu'on peut rajouter d'autres structures (comme des tas) spécifiques pour certains algorithmes, dans des tableaux, et pas directement dans la structure "bouh".
Je m'explique, avec la première méthode, je vais devoir faire :
Code:
1 2 3 4 5 6 7 8 9 10 11
| struct bouh {
attribut_essentiel;
attribut_supplémentaire;
};
/* .... */
for (int i = 0; i < nb_machins; i++) {
machin m = machins[i]
utilisation de m->bouh->attribut_supplementaire;
} |
Avec l'autre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| /* struct bouh n'a pas changée */
struct bouh {
attribut_essentiel;
};
/* .... */
attribut_supplementaire[nb_bouhs]; /* les attributs supplémentaires sont maintenant locaux */
/* initialisation */
for (int i = 0; i < nb_machins; i++) {
machine m = machins[i];
utilisation de attribut_supplementaires[m->bouh];
} |
Merci.