На данный момент у меня есть объект, который выглядит примерно так.
C#
public class Step {
int id;
List<Step> nextSteps;
}
И я пытаюсь преобразовать его в другой объект, который выглядит очень похоже, за исключением того факта, что он не допускает циклов.
Он должен обрабатывать циклы, не расширяя дочерние узлы узлов, которые уже появились на более высокой глубине. Итеративное углубление решает эту проблему (реализация поиска в глубину, но порядок поиска в ширину), но я борюсь с реализацией, используя следующую структуру.
Все реализации, которые я нашел, основаны на поиске некоторого целевого узла, тогда как мне нужно развернуть все дерево.
Любая помощь будет оценена по достоинству. :D