У меня есть структура данных, которая выглядит следующим образом:
public class Node
{
public string Code { get; set; }
public string Description { get; set; }
...
public List<Node> Children { get; set; }
}
Я хочу написать метод, который будет возвращать конкретный узел с учетом указанного кода
. Обычно я просто выполняю рекурсивный обход иерархии, чтобы найти узел, но меня беспокоит производительность. В иерархии будет несколько тысяч узлов, и этот метод будет вызываться много-много раз.
Как мне структурировать его, чтобы он работал быстрее? Могу ли я использовать существующую структуру данных, которая, возможно, выполняет двоичный поиск по коду
, сохраняя при этом иерархическую структуру, без повторной реализации какой-либо формы двоичного поиска?