Bonjour tout le monde,
Je développe un programme en C++ pour modéliser un réseau métabolique (comprendre réseau de réactions chimiques) par un graphe : un ensemble de noeuds liés par des arêtes. Les noeuds correspondent aux composés et les arêtes aux réactions impliquant ces composés. J'ai donc les classes correspondantes : Graph, Node (noeud) et Edge (arête). Graph connait la liste des noeuds et des arêtes. Enfin, chaque noeud est dans un état parmi 4 états possibles : gris, blanc, vert ou rouge.
Un graphe aura dans de nombreux cas plusieurs milliers de noeuds, qui doivent être traversés par l'algorithme de recherche qui tient compte de la couleur des noeuds. Dans l'idée d'optimiser l'utilisation de la mémoire et la vitesse d'exécution, je me demande comment implémenter au mieux la gestion de la couleur des noeuds.
Quel type de variable utiliser pour la couleur (est-ce qu'on peut faire mieux qu'un int) ? Accessoirement, est-il préférable qu'elle soit gérée par le noeud concerné (classe Node) ou par la classe Graph qui se chargerait de mapper le numéro du noeud à sa couleur ?
EDIT : On doit pouvoir différencier rapidement les noeuds verts/rouges des noeuds gris/blancs.
Partager