Есть ли какая-либо структура данных графа, реализованная для C # - PullRequest
42 голосов
/ 23 сентября 2011

Я попытался найти структуру данных графа для повторного использования в C #, но безуспешно. Конечно, я могу позаимствовать у книг по структуре данных, но я хочу, чтобы это было более коммерчески практичным (?). Также я был бы признателен, если бы вы сказали мне, каков наилучший способ реализации графа. Спасибо

Ответы [ 2 ]

31 голосов
/ 23 сентября 2011

QuickGraph

QuickGraph - это библиотека графов для .NET, созданная на основе Boost Graph Library.

QuickGraph предоставляет общие ориентированные / ненаправленные графовые структуры данных и алгоритмы для .Net 2.0 и выше. QuickGraph поставляется с такими алгоритмами, как поиск по глубине, поиск по дыханию, поиск A *, кратчайший путь, k-кратчайший путь, максимальный поток, минимальное связующее дерево, наименее распространенные предки и т. Д. рендеринг графиков, сериализация в GraphML и т. д.


Существует несколько способов построения графиков. C ++ Boost Graph Library (BGL) будет вашим лучшим справочным материалом. Он реализует как граф смежности, матрицу смежности, так и графы списка ребер. Смотрите здесь для деталей.

25 голосов
/ 23 сентября 2011

На самом деле в MSDN есть довольно старая статья, посвященная созданию графов в C #, Обширный анализ структур данных с использованием C # 2.0 . Несмотря на возраст, он по-прежнему отвечает на ваш вопрос, если вы не против создать свой собственный класс (ы) графа.

...