Salve ragazzi

Ho implementato la vistia DFS per Grafi con liste di adiacenza, ecco il codice:

public void visita(NodoLA u){

for(int i = 0; i < g.getNodi().getSize(); i++){

st[i] = Stato.INESPLORATO;

prev[i] = null;

}

DFSvisit(u);

}

public void DFSvisit(NodoLA u){

st[u.indice(g.getNodi())] = Stato.APERTO;

ListNode adj = u.listaDiAdiacenza.getHead();

for(; adj != null; adj = adj.next){

if(st[((NodoLA)adj.getInfo()).indice(g.getNodi())] == Stato.INESPLORATO){

prev[((NodoLA)adj.getInfo()).indice(g.getNodi())] = u;

DFSvisit(((NodoLA)adj.getInfo()));

}

st[u.indice(g.getNodi())] = Stato.CHIUSO;

}

}

Sto cercando adesso di implementarlo per Grafi con matrice di adiacenza:

public void visita(NodoLA u){

for(int i = 0; i < g.getNodi().getSize(); i++){

st[i] = Stato.INESPLORATO;

prev[i] = null;

}

DFSvisit(u);

}

public void DFSvisit(NodoLA u){

st[u.indice(g.getNodi())] = Stato.APERTO;

for(int i=0; i<matriceDiAdiacenza[0].length;i++){

if(matriceDiAdiacenza[u.indice(g.getNodi())][i] != 1){

if(st[matriceDiAdiacenza[u.indice(g.getNodi())][i]] == Stato.INESPLORATO){

prev[matriceDiAdiacenza[u.indice(g.getNodi())][i]] = u;

DFSvisit(matriceDiAdiacenza[u.indice(g.getNodi())][i]);

}

st[u.indice(g.getNodi())] = Stato.CHIUSO;

}

}

Non riesco a capire dove sbaglio