Древовидная структура для .Net - PullRequest
2 голосов
/ 25 мая 2011

Я получаю коллекцию предметов:

item_id
parent_item_id
name

Мне нужно представить ее в виде дерева каталогов в виде структуры.Существуют ли три подобные .net структуры, которые позволили бы находить в нем элемент с некоторым уникальным идентификатором (быстро) и позволяли мне запрашивать элементы на основе их имен и имен их родителей.

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Большинство людей просто реализуют это сами.Как правило, добавляя дочернюю коллекцию

item_id
parent_item_id
name
children 

Вам необходимо соблюдать осторожность, чтобы синхронизировать идентификатор родительского элемента, и вам, вероятно, потребуется реализовать правила, например, у детей может быть только один родитель, а вы 'Вам также нужно будет хранить parent_item_id только для чтения вне класса.

Поскольку производительность важна для вас, а усилия очень малы, я бы основал время и память на одной структуре, которая фактически выполняет то, что вам нужно, но вы, вероятно, не хотите использовать, datatables .Чтобы сделать это, вы просто определяете три столбца (item_id, parent_item_id, name) и добавляете связь между item_id и parent_item_id.

Когда у вас есть базовые номера DataTable, вы сможете добиться большего успеха, иначе вы можете просто использовать DataTable.

1 голос
/ 25 мая 2011

Насколько я знаю, ничего не встроено. Это хорошая статья, в которой рассказывается, как реализовать двоичное дерево поиска в .NET

http://msdn.microsoft.com/library/ms379572.aspx

Звучит так, как будто тебе стоит начать.

...