pessoal…
nao estou conseguindo imprimir o percurso da busca em profundidade
eu preciso que mostre o percurso completo (com as repetiçoes)
por exemplo:
eu tenho uma arvore com 5 vertices cuja raiz é o vertice 2
o vertice 2 só tem o filho 0 (vertice 0): 2->0
o vertice 0 tem os filhos 1, 3, e 4
entao a arvore ficaria assim:
2->0
0->1
0->3
0->4
represento essa arvore por uma matriz de adjacencia
o que eu quero fazer é imprimir todo o percurso da busca
no caso apresentado ficaria assim:
2->0->1->0->3->0->4->0->2
só que do jeito q eu fiz não imprime a volta na raiz
fica assim: 2->0->1->3->4
public void buscaProfundidade(Grafo grafo, int raiz) {
percArv.add(raiz); // array para guardar os vertices, dps só imprimo esse array
visitados[raiz] = true; // ja foi inicializado com false em td posiçao
int i;
for (i = 0; i < grafo.numV; i++) {
if (grafo.matrizAdj[raiz][i] != 0 && visitados[i] == false) {
buscaProfundidade(grafo, i);
}
}
}
dps eu tentei assim:
public void buscaProfundidade(Grafo grafo, int raiz) {
percArv.add(raiz);
visitados[raiz] = true;
int i;
for (i = 0; i < grafo.numV; i++) {
if (grafo.matrizAdj[raiz][i] != 0 && visitados[i] == false) {
buscaProfundidade(grafo, i);
}
}
percArv.add(raiz); // qnd n tem + pra onde ir guarda a raiz anterior
}
o problema é como vou guardar a raiz anterior?
pra qnd chegar no 1, por ex, ver q nao tem mais filhos e guardar o 0, que é pai de 1
e fazer isso com todos
alguem pode ajudar?
