Пример: у меня есть 20 человек в качестве объекта, и каждый человек знает 0-н других.Направление ссылки имеет значение!Человек A может знать B, но B может не знать A. Это ориентированный граф.
Редактировать: Для упрощения, мои объекты узлов (в данном случае объекты Person)возможность хранить произвольную информацию.Я знаю, что это не лучший дизайн, но сейчас это было бы хорошо.
Так что в худшем случае все связаны со всеми, все знают всех остальных.Это не реальный вариант использования, но я хочу написать тест для этого, чтобы изучить и поиграть.В продуктивной среде число объектов будет ограничено примерно 20, но способы, которыми эти объекты соединяются друг с другом, не ограничены.
Это иллюстрирует проблему в упрощенном виде:
благодаря источнику
Учитывая конкретного человека в качестве отправной точки, я хочу пройтись по всему графику и исследовать каждый возможный путь ровно один раз, не зацикливаясь на бесконечном цикле.
Давайтепредставьте, что человек A знает B, кто знает C, и кто знает A. Выходные данные могут быть:
A знает, что B знает, что C знает A (хорошо, но мы не хотим заканчивать бесконечный цикл, поэтому мы останавливаемсяздесь) A знает, что C знает, что AA знает, что T знает, что R знает, что V
Это было бы глупо и должно быть устранено: A знает, что B знает, что C знает, A знает, что C знает, знает, что T знает, что R знает, что V ...
У меня есть пара сумасшедших идей, как решить эту проблему.Но ...
Вопрос) Должен ли я сделать это с помощью итеративного углубленного поиска в глубину (IDDFS)?
Джон любезно указал DFS в Википедии
Я застрял с этой частью в статье: 
поиск в глубину, начинающийся с A, при условии, что левые края на показанном графикевыбираются перед правыми краями, и, предполагая, что поиск запоминает ранее посещенные узлы и не будет повторять их (так как это небольшой график), будет посещать узлы в следующем порядке: A, B, D, F, E, C,G. Пересекаемые в этом поиске ребра образуют дерево Тремо, структуру с важными приложениями в теории графов.
, в частности, это примечание:
"(поскольку этомаленький график) "
Хорошо, а что, если это огромный график?