hi, ich habe eine adjazentenmatrix gegeben und möchte davon alle nachfolger verfolgen, bis zu einem knoten, welcher keine nachfolger hat. (der graph hat keinen kreis).
das habe ich nun hinbekommen, aber danach soll ja zu dem vorrigen knoten (von dem man gekomemn ist) zurück kehren und weiter suchen.
also z.b. so eine matrix:
01001
00101
00000
00100
00010
ich hab da irgendetwas mit stack gelesen, dass da die sprungmarken gespeichert werden. verstehe aber nicht, woher die rekursion weis, dass sie an der stelle wieder reingehen soll, wovon sie raus gesprungen ist, bzw wie man das in java schreibt.
code beispiel:
das habe ich nun hinbekommen, aber danach soll ja zu dem vorrigen knoten (von dem man gekomemn ist) zurück kehren und weiter suchen.
also z.b. so eine matrix:
01001
00101
00000
00100
00010
ich hab da irgendetwas mit stack gelesen, dass da die sprungmarken gespeichert werden. verstehe aber nicht, woher die rekursion weis, dass sie an der stelle wieder reingehen soll, wovon sie raus gesprungen ist, bzw wie man das in java schreibt.
code beispiel:
Code:
void suche_rek(int ii) {
int i;
int j=0;
//"durchspringt" die ersten beiden Zeilen
for (i = ii; j < matrix.length; j++) {
if (g[i][j] == 1)
suche_rek(j);
} //for endet in der 3. Zeile, weil es keine 1 sen gibt
int[] speicher = new int[k];
speicher[i] = k; //das i in speicher[i] entspricht der zeilennummer
System.out.println(i + " - " + k);
k--;
rekursion(i); //ist wohl falsch
} //rekursion
also, dieser algorithmus springt in der 3. zeile aus der for schleife, gibt dem array speicher eine nummer und soll dann eigentlich in der vorrigen zeile bei der ersten 1 (bzw an dem punkt welcher verlassen wurde) wieder einsteigen und gucken, ob es noch eine 1 gibt. etc... für alle knoten dann halt.