60 votes

Existe-t-il une structure de données de type graphe implémentée en C# ?

J'ai essayé de trouver une structure de données de type graphe à réutiliser en C# sans succès. Bien sûr, je peux emprunter des livres sur les structures de données mais je veux que ce soit plus pratique commercialement ( ?) J'apprécierais également si vous pouviez me dire quelle est la meilleure façon d'implémenter un graphe. Merci

44voto

Lior Kogan Points 8610

QuickGraph

QuickGraph est une bibliothèque de graphes pour .NET qui s'inspire de la bibliothèque de graphes Boost.

QuickGraph fournit des structures de données et des algorithmes génériques pour les graphes dirigés et non dirigés pour .Net 2.0 et plus. QuickGraph est livré avec des algorithmes tels que depth first seach, breath first search, A* search, shortest path, k-shortest path, maximum flow, minimum spanning tree, least common ancestors, etc... QuickGraph supporte MSAGL, GLEE et Graphviz pour le rendu des graphes, la sérialisation en GraphML, etc...


Il existe plusieurs façons de construire des graphiques. La bibliothèque C++ Boost Graph Library (BGL) serait votre meilleure référence. Elle implémente les graphes de type liste d'adjacence, matrice d'adjacence et liste d'arêtes. Consultez aquí pour les détails.

36voto

Michael Goldshteyn Points 24679

Il existe en fait un article assez ancien dans MSDN qui traite de la création de graphes en C#, Un examen approfondi des structures de données à l'aide de C# 2.0 . Malgré son ancienneté, il répond toujours à votre question, pour autant que vous n'ayez pas peur de créer votre ou vos propres classes de graphiques.

3voto

TomDane Points 101

En cours de développement actif, il y a https://www.nuget.org/packages/QuikGraph Vous pouvez consulter le code source sur GitHub https://github.com/KeRNeLith/QuikGraph et lisez aussi le wiki https://github.com/KeRNeLith/QuikGraph/wiki

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X