Ich versuche, einige grundlegende Funktion auf einem Diagramm (mit einer booleschen Matrix) zu tun. Sie alle arbeiten außer der DFS. Es gibt mir eine zufällige Nummer. Ich versuche dieses Problem seit einigen Stunden zu lösen, aber immer noch nichts .. (der Code kompiliert, aber was es falsch zeigt). Btw, das Ergebnis von DFS muss eine Matrix sein, mit der Anzahl der Stapel und auch dem "Abwickeln" jedes Diagrammscheitelpunktes.DFS iterative Funktion funktioniert nicht richtig
Wo ist mein Fehler?
Mein Programm:
public int[][] DFS(int s) {
Stack<Integer> stack = new Stack<Integer>();
stack.push(s);
int recorder = 1;
int[][] mark = new int[nbs][2];
mark[s][0] = recorder++;
boolean[] decouvert = new boolean[nbs];
while (!stack.isEmpty()) {
s = stack.pop();
mark[s][1] = recorder++;
if (!decouvert[s]) {
decouvert[s] = true;
for (int i = 0; i < nbs; i++) {
if (m[s][i]) {
stack.push(i);
mark[s][0] = recorder++;
}
}
}
}
return mark;
}
Das ist das Ergebnis: [link] (http://puu.sh/vNa5O/f630091c27.png) Von diesem Graph: [link] (http://puu.sh/vN9V6/b70c3f1d4c.png) und ich mache das im Wesentlichen: 'int [] [] r2 = g3.DFS (0); für (int i = 0; i
Meine Variable" decouvert "bedeutet" discover " –