PriorityQueue

2 respostas
herbertins

galera alguem poderia me ajudar com esse código, não conssigo entenderr

Queue<No> abertos = new PriorityQueue<No>(100, getNoComparatorF());
public abstract class BuscaHeuristica extends Busca {
    
    /** comparador para ordenar os nós por F */
    Comparator<No> getNoComparatorF() {
    	
        return new Comparator<No>() {
        	
            public int compare(No no1, No no2) {
                try {
                	
                    int f1 = no1.f();
                    int f2 = no2.f();
                    
                    if (f1 > f2) {
                        return 1;
                    } else if (f1 == f2) {
                        return 0; 
                    } else {
                        return -1;
                    }
                    
                } 
                catch (Exception e) {
                    e.printStackTrace();
                }
                return 0;
            }
        };
    }
}

ele gera um erro na seguinte linhas

if (f1 > f2) {

segue o erro

at br.com.tcc.busca.BuscaHeuristica$1.compare(BuscaHeuristica.java:16)

2 Respostas

ViniGodoy

Você pode colocar a mensagem de erro completa?

Só a linha que o erro ocorreu não ajuda muito.

Ah! E você pode postar o código completo desse algoritmo A* num attachment zipado aqui?
Eu queria comparar com o meu. :)

Alguns comentários:
1. Pra que o try... catch?
2. Se seus ifs dão um return, pra que tanto else?
3. Pra que as variáveis temporárias?

O método não devia ficar curtinho assim?
public abstract class BuscaHeuristica extends Busca {   
       
    /** comparador para ordenar os nós por F */  
    Comparator<No> getNoComparatorF() {   
           
        return new Comparator<No>() {   
            public int compare(No no1, No no2) {   
               if (no1.f() &gt no2.f())
                   return 1;   
               if (no1.f() == no2.f())
                   return 0;
               return -1;   
            }   
        };
    }
}
herbertins

viniii sabe oq eu não intendooo!!!!!!!

pq que o metodo começa com return

tipo

[code]
return new Comparator() {
.
.
.
};
[code]

ME DAH SEU E-MAIL QUE EU TE MANDO MEU ALGORITMO

Criado 27 de agosto de 2007
Ultima resposta 28 de ago. de 2007
Respostas 2
Participantes 2