Senhores,
Vocês poderiam me fornecer uma consultoria?
Estou tentando implementar o algoritmo busca em largura,mas me deparei com um erro,java.lang.NullPointerException,
me informando que estou apontando para um objeto que não existe.Veja minha implementação:
public void buscaLargura(Vertice inicial) {
LinkedList<Vertice> visitados = new LinkedList<Vertice>();
//java exigiu que inicializasse a fila.
Queue<Vertice> paraVisitar = null;
//adiciono meu vertice inicial a fila
paraVisitar.offer(inicial);
while (!paraVisitar.isEmpty()) {
Vertice v = paraVisitar.poll();
paraVisitar.offer(v);
if (!visitados.contains(v)) {
System.out.println(v.getNome());
visitados.add(v);
}
for (Aresta a : v.getArestas()) {
//a.getDestino() retorna um vértice
paraVisitar.offer(a.getDestino());
}
}
}
O problema que ele aponta é na linha 6.
Para ver se havia algum problema com as minhas classes vertice e aresta, resolvi implementar uma classe elemento e uma classe fila para substituir o Queue do Java.Após testar a fila que criei,o algoritmo busca em largura funcionou…
public void buscaLargura(Vertice inicial) {
LinkedList<Vertice> visitados = new LinkedList<Vertice>();
Fila paraVisitar = new Fila();
paraVisitar.add(inicial);
while (!paraVisitar.isEmpty()) {
Vertice v = paraVisitar.rmv();
if (!visitados.contains(v)) {
System.out.println(v.getNome());
visitados.add(v);
}
for (Aresta a : v.getArestas()) {
paraVisitar.add(a.getDestino());
}
}
}
Alguém de vocês possue um bom material relativo aos métodos que o Queue possui para que eu possa dar uma estudada?
Desde já agradeço.