У меня есть список несортированных объектов.Эти объекты представляют двоичное дерево.
Список объектов:
new List<Object>
{
new { Id = 3, Left = /, Right = / }
new { Id = 5, Left = /, Right = / }
new { Id = 4, Left = 2, Right = 5 }
new { Id = 2, Left = 1, Right = 3 }
new { Id = 1, Left = /, Right = / }
}
Двоичное дерево:
4
/ \
2 5
/ \
1 3
Мне нужен алгоритм, который найдет глубину любого изэти узлы.Единственный известный мне алгоритм - поиск в глубину.Это означает, что я должен преобразовать список объектов в дерево.Учитывая, что .NET не имеет явной древовидной структуры данных, как бы вы подошли к этой проблеме?Нужно ли преобразовывать структуру данных в дерево (я не очень хочу писать весь код).Есть ли другой алгоритм?