Не могу найти причину, по которой я получаю это исключение NullPointException. Это указывает на две конкретные линии.NullPointerException не может найти ошибку
Это ошибка:
Exception in thread "main" java.lang.NullPointerException
at Railroad.dijkstra(Railroad.java:52)
at Railroad.main(Railroad.java:36)
Эти 2 строки:
dijkstra(A);
for (Edge x : w.edges){
Это весь код для удобства:
проводки весь код легче понять, где Я иду. Надеюсь, это поможет, спасибо!
Vertex[] vertices = { A, B, C, D, E, F, G, H, I, J, K, L, M };
dijkstra(A);
for (Vertex v : vertices)
{
System.out.println("Distance to " + v + ": " + v.shortestDist);
List<Vertex> trip = cheapestTrip(v);
System.out.println("Path: " + trip);
}
}
public static void dijkstra(Vertex s){
s.shortestDist = 0;
PriorityQueue<Vertex> cityQueue = new PriorityQueue<Vertex>();
cityQueue.add(s);
while(!cityQueue.isEmpty()){
Vertex w = cityQueue.poll();
for (Edge x : w.edges){
Vertex v = x.city;
int price = x.price;
int priceOfTrip = w.shortestDist + price;
if(priceOfTrip < v.shortestDist){ //relaxes the edge that it's on
cityQueue.remove(v);
v.shortestDist = priceOfTrip;
v.prev = w;
cityQueue.add(v);
}
}
}
}
Можете ли вы указать строку Railroad.java:52 в своем коде? –
@AlexandreLavoie Он сделал. – chrylis
Пожалуйста, разместите код для Vertex. Я подозреваю, что поле 'edge' объекта' Vertex' не получает инициализацию должным образом. – chrylis