Может ли кто-нибудь помочь мне прояснить мое понимание DFS с использованием рекурсивного подхода?
На приведенном выше графике без направления, если я выполняю DFS с использованием рекурсивного подхода, выходные данные зависят отпри добавлении соседей вершины.
то есть для вершины 0, если соседи добавляются в последовательности вершин 8, 3 и 1. Тогда результат => 0 8 4 3 2 5 6 7 1
Проблема с этим результатом состоит в том, что между 6 и 7 нет связи. В этом случае этот результат действителен?
Но для Вершины 0, если соседи добавляются в последовательности Вершины 1, 3 &8. Тогда результат => 0 1 7 2 3 4 8 5 6, что имеет смысл.
Если я правильно понимаю, как мы можем написать стабильную DFS, используя рекурсию.
Здесьмой код, который я написал после прохождения вашего объяснения.
void dfsRecursion(Vertex startV){
startV.setVisited(true);
System.out.print(startV);
for(Vertex v: startV.getNeighbors()){
if (!v.isVisited()){
dfsRecursion(v);
}
}
}