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
Réponses
Trop de publicités?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.
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.
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