-2

Me encuentro realizando la implementación del algoritmo de prim
s = q2.poll().getVal();

        if(visited[s]==false) { 
            mst.add(q.poll());
        }
        else {
            while(visited[s]==true) { 
                q.poll();
                s = q2.poll().getVal();
            }              

Y al ejecutar me aparece un null pointer exception para cuando asigno un valor a s en el while.

1 Answers1

0

Debido a que tenes

 q.poll();
 s = q2.poll().getVal();

encerrado en un "while" preguntando por un indice del array "visited[s]" y dentro del mismo while cambiando "s" por otro valor, lo más probable es que el valor dado por s = q2.poll().getVal(); no sea un indice valido para "visited[s]" y java este intentando acceder a un valor "null" o sea que no existe y por lo tanto saltanto la excepción. Una de las posibles soluciones es agregar la condicion preguntando por "null" en el while de esta manera:

while(visited[s]==true && visited[s]!=null) { q.poll(); s = q2.poll().getVal(); }

Espero te sea de utilidad. Mucha suerte. Un saludo.

fepa0110
  • 1
  • 1