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 ?
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”.