Как эффективно выполнять поиск в этой иерархической структуре?

У меня есть структура данных, которая выглядит следующим образом:

public class Node
{
     public string Code { get; set; }
     public string Description { get; set; }
     ...
     public List<Node> Children { get; set; }
}

Я хочу написать метод, который будет возвращать конкретный узел с учетом указанного кода . Обычно я просто выполняю рекурсивный обход иерархии, чтобы найти узел, но меня беспокоит производительность. В иерархии будет несколько тысяч узлов, и этот метод будет вызываться много-много раз.

Как мне структурировать его, чтобы он работал быстрее? Могу ли я использовать существующую структуру данных, которая, возможно, выполняет двоичный поиск по коду , сохраняя при этом иерархическую структуру, без повторной реализации какой-либо формы двоичного поиска?

6
задан Robert Harvey 2 November 2010 в 16:12
поделиться