Ich habe eine Zuweisung, in der wir ein Array von Vertices haben, jeder Vertex hat eine Array-Liste mit benachbarten Vertices. Das Ziel besteht darin, einen Pfad vom ersten zum letzten rekursiv zu finden. Sobald der Tiefensuchalgorithmus den Zielknoten erreicht, fügt er ihn dem Lösungspfad hinzu (doppelt verkettete Liste), und fügt dann alle Scheitelpunkte auf dem direkten Pfad rekursiv zum Quellknoten zurück. hier ist mein Code so weit (statt solutionPath.add im nur Druck auf die Konsole zu sehen, was mit dem Pfad zu der verknüpften Liste hinzugefügt werden würde)Tiefe erste Suche rekursiv vom ersten Knoten zum letzten Java
private DoublyLinkedList<Vertex> dfs(int firstRoom, int lastRoom, boolean[]
visited){
System.out.println(firstRoom);
if(visited[lastRoom]== true){
return pathSolution;
}
Iterator<Edge> n = rooms[firstRoom].getEdgesIterator();
while(n.hasNext()){
int e= n.next().getAdjacentVertex();
if(!visited[e]){
visited[e]=true;
return dfs(e, lastRoom, visited);
}
}
return pathSolution;
}
Was ist das Problem mit Ihrem Code? – kraskevich
Ich glaube nicht, dass es diesen Teil der Anforderungen erfüllt "Sobald der Tiefensuchalgorithmus den Zielknoten erreicht, fügt er ihn dem Lösungspfad (doppelt verknüpfte Liste) hinzu und fügt dann rekursiv alle Knoten auf dem direkten Pfad zurück zum Quellknoten " –