Я пытаюсь решить лабиринт с помощью DFS, используя прилагательный список для представления вершин и ребер графа. Всего 12 узлов (3 строки [A, B, C] * 4 столбца [0, .., 3]). Моя программа начинается с сохранения всех меток вершин (A0, .. C3), пока что все хорошо, затем проверяет смежные узлы, также без проблем, если движение возможно, оно продолжает создавать край, здесь его, где все идет не так, как надо .
adjList[i].add(vList[j].label);
Я использовал отладчик и обнаружил, что vList[j].label
не равно нулю, он содержит правильную строку (т. Е. "B1"). Единственные переменные, которые показывают нуль, находятся в adjList[i]
, что заставляет меня полагать, что я реализовал это неправильно. Вот как я это сделал.
public class GraphList {
private ArrayList<String>[] adjList;
...
public GraphList(int vertexcount) {
adjList = (ArrayList<String>[]) new ArrayList[vertexCount];
...
}
...
public void addEdge(int i, int j) {
adjList[i].add(vList[j].label); //NULLPOINTEREXCEPTION HERE
}
...
}
Я буду очень признателен, если кто-нибудь сможет направить меня на правильный путь, понизив, что происходит не так ... Спасибо!