Является ли "это", то есть текущий экземпляр, "корнем" графа, если такое существует?
Является ли график циклическим или ациклическим? Боюсь, я не знаю всех терминов теории графов.
Вот что мне действительно интересно:
A -> B -> C ------> F
B -> D -> E -> F
Вот мои вопросы:
- Это произойдет?
- Может ли "это" в вашем коде когда-либо начинаться с B?
- Каким будет путь к F?
Если граф никогда не объединяется вместе, когда он разделен, не содержит циклов, и «this» всегда будет корнем / началом графа, простой словарь будет обрабатывать путь.
Dictionary<Node, Node> PreNodes = new Dictionary<Node, Node>();
для каждого посещаемого вами узла, добавьте соседний узел в качестве ключа, а узел, соседом которого он был, в качестве значения. Это позволит вам, когда вы найдете целевой узел, вернуться назад, чтобы получить обратный путь.
Другими словами, словарь для приведенного выше графика после полного обхода будет:
B: A
C: B
D: B
E: D
F: C (or E, or both?)
Чтобы найти путь к E-узлу, просто вернитесь назад:
E -> D -> B -> A
Который дает вам путь:
A -> B -> D -> E