ich versuche, ein Diagramm Problem mit einer rekursiven Methode zu lösen eine richtige Lösung zurückkehrt, aber ich frage mich, ob es möglich ist, dies zu tun, weil in einer Rekursion den Zustand eines Graphen zu ändern level wird es auf anderen Ebenen ändern, da sie sich auf dasselbe Objekt beziehen. Gibt es eine Möglichkeit, es zu lösen?rekursive Methode ein Diagramm mit ändert sich der Zustand auf allen Ebenen
Hier sind meine Code-Beispiele:
1) Knoten - hier können Sie sehen, dass Knoten Erstellen von Kanten
public class Node{
private int visited;
private int label;
private int order;
private int degree;
private ArrayList <Node> neighbours;
...
}
2) Graph binded sind
public class Graph {
private ArrayList <Square> graph;
private int graphSize;
private int numOfVertices;
...
}
3) Und die Skizze einer Methode:
public boolean backTracking(int label, int moves, Graph graph){
// something here
if(current.getVisited() != 1){
// current is a next neighbor of a vertex
if(backTracking(current.getLabel(),completedMoves, graph))
return true;
}
return false;
Im Allgemeinen gibt es zwei Möglichkeiten, das Zurückverfolgen zu implementieren: (1) Wenn Sie die Zurückverfolgung durchführen, machen Sie alle Änderungen rückgängig, die bei der Weiterleitung gemacht wurden. (2) Nehmen Sie nur Änderungen vor, die Sie bei der Rückverfolgung billig verwerfen können, indem Sie z. B. die Daten bei jedem Schritt kopieren, die möglicherweise rückgängig gemacht werden müssen, oder indem Sie den Status des Algorithmus getrennt vom Status der Datenstruktur verfolgen. –
Danke, das hat für mich funktioniert. – michszm