Как мне реализовать эту структуру данных графа / дерева в C # / SQL? - PullRequest
1 голос
/ 11 октября 2010

Мне нужно реализовать структуру данных в C # / SQL Server, которая представляет собой немного дерева и немного графика. Я могу придумать, как это сделать, но производительность очень важна. Вот где мне нужна помощь.

Вот требования:

1) Существует n корневых узлов.

2) Каждый узел может иметь n дочерних элементов.

3) Каждый узел представляет собой список.

4) Каждый узел может быть связан с другим узлом или элементом в списке узлов.

5) Отношения (ребра?) Имеют тип. В частности, узлы могут иметь слабые отношения (все книги в библиотеке с одним и тем же предметом), отношения поколений (настройка рецепта), варианты отношений (перевод книги).

6) Каждый узел может иметь вес.

Я не очень хорошо разбираюсь в структурах данных, которые не входят в стандартную лексику (список, дерево, хэш-таблица, словарь и т. Д.). Так что может быть что-то там, о чем я просто не знаю. Когда я использую Google Graph Server, я получаю много ссылок о симпатичных графических элементах управления для отчетов. Производительность имеет решающее значение, потенциально могут быть миллионы узлов, которые должны быть введены в память. Я бы даже взял LMGTFY с правильно созданным запросом, так как я, кажется, не могу выразить то, что я хочу. Любая отправная точка поможет.

1 Ответ

1 голос
/ 11 октября 2010

Как насчет изучения следующего проекта CodeProject: http://www.codeproject.com/KB/recipes/DotNet2Datastructures.aspx

Имеет хорошую Graph<T> реализацию (среди прочих). Неизмененный код не поможет с указанными вами отношениями, но если вы добавите их сами, это может быть хорошей отправной точкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...