J'ai un problème d'optimisation.
J'ai une liste d'éléments (je vais utiliser des nombres par la suite) et chaque élément peut être lié à N autres éléments
donc 1 peut être lié à 2, 3, 4 et 5 mais si 3 est lié à 6 et que 6 est lié à 7 et 1 alors on a un test cyclique vérifié (1=>3=>7=>1=>3=>7=>1=>3=>7=>1=>3=>7=>1=>3=>7=>1...)
l'idée c'est d'afficher cette liste sous forme d'arborescence pour un élément choisi, c'est à dire que je fais un niveau racine avec 1, un niveau fils avec 2, 3, 4 et 5, un niveau petit fils avec 6, et un niveau arrière petit fils avec 7 et là, au lieu de faire un sous niveau avec 1, j'aimerais indiquer qu'on a un cycle (genre 1*)
ça parait simple à faire mais le pb c'est que je vais avoir énormément de ces listes très profondes à produire très souvent, et je ne dois pas saturer le proco pour ça.
Pour le moment, j'ai trouvé uniquement ça et je me demandais si vous n'aviez pas trouver mieux :
- lister les éléments liés
- pour chaque élément lié vérifié s'il y a des enfants (et dans ce cas on les liste)
- pour chaque élément enfant, vérifier les aïeux et si l'enfant est l'un des aïeux alors on met "*" et on ne cherche pas les petits enfants
le problème c'est que revérifier pour chaque entité la chaine qui remonte jusqu'à Adam, je sais pas si c'est pas cpufage...