Problema de lógica

2 respostas
S

Boas, eu tenho um projecto sobre grafos que possui um vector de vertices e cada vertice tem uma LinkedList de arcos , eu preciso de fazer um método que imprima todos os arcos do grafo, eu estava fazendo um método que percorria vertice a vertice e sacava todos os arcos para uma string, o problema é k por exemplo um arco que vai do vertice 1 para o vertice 2 , vai aparecer kuando eu sacar os arcos do vertice 1 e kuando eu sacar do vertice 2.

Alguém já fez algo parecido ? ou tem alguma ideia ?

2 Respostas

R

Você está usando busca em profundidade, busca em largura? Tanto a busca em profundidade quanto a busca em largura possuem o conceito de “visitar” cada vértice, que nada mais é que marcá-lo “uma flag” como visitado. Se durante a busca você se deparar de novo com o mesmo vértice, você saberá que ele já foi visitado, e a execução retorna (pois esse algoritmos são recursivos).

Então, no seu caso, se o vértice v1 aponta para v2, e v2 aponta para v1, você tem razão que haverá uma recursão infinita, causando crash. Então, sugiro utilizar a flag de “visita”.

S

Como é que eu posso usar isso ? Eu nunca ouvi falar nisso, mas dava-me muito jeito, agradecia algumas dicas !

Criado 13 de maio de 2006
Ultima resposta 14 de mai. de 2006
Respostas 2
Participantes 2