2009-09-30 5 views
3

Je cherche à utiliser Boost Graph Library comme base pour un graphique de dag. Je ne l'ai pas vraiment beaucoup utilisé auparavant, donc je ne connais pas très bien son fonctionnement. Bien que je n'aie pas besoin de poids de bord et d'algorithmes de déplacement intelligents, j'aimerais bien obtenir la sérialisation gratuitement, en plus des contraintes qui imposent des graphes de dag et qui interdisent les arcs parallèles.Boost Graph comme base pour un simple graphique DAG?

Vous envisagez de faire abstraction des complexités de la BGL, mais est-ce exagéré pour ce genre de chose, puisque je ne choisirai qu'un nœud et que je récurserai sur tous ses enfants?

Je voudrais aussi pouvoir avoir des nœuds isolés qui ne sont pas connectés à d'autres nœuds dans le graphique, mais qui sont capables de parcourir ceux-ci dans le graphique. Est-ce quelque chose qui est fourni, ou devrais-je stocker ma propre collection de nœuds?

Répondre

2

L'itération sur les noeuds dans un graphique est fournie. Il y a une interface qui renvoie une begin, end paire d'itérateurs sur les noeuds (et un autre semblable sur les bords):

std::pair<vertex_iterator, vertex_iterator> vertices(const adjacency_list& g) 

De l'documentation

Questions connexes