A *를 구현하기 위해 그래프를 작성하고 있는데 노드의 이웃을 찾기 위해 특정 오류가 발생했습니다. 내 논리는 인접 배열을 나타내는 2D ArrayList에서 목록 1에있는 노드 abcd와 목록 2에있는 노드 abcd에 있으며 그 인덱스가 0이 아닌 다른 값을 가져야한다는 것을 나타냅니다. 가장자리가 존재합니다. 나는 좋은 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
오류가 발생하지만IndexOutOfBoundsException 받기 : 음수가 포함되지 않은 경우 -1 -
public List<Node> neighbours(Node a){
List<Node> neighbours = new ArrayList<Node>();
for(int i = 0; i < nodes.size() - 1; i ++){
int n = matrix.get(matrix.indexOf(a)).get(i);
if (n != 0){
neighbours.add(nodes.get(i));
}
}
return neighbours;
}
, 나는 30 분 동안이 응시했지만 나는이에서 오는 -1 단서가 없다 : 이것은 내가 여기서 할 노력하고있어 것입니다.
public void addNode (Node a){
int count = 0;
nodes.add(a);
matrix.add(new ArrayList<Integer>(nodes.size()));
for (List<Integer> list : matrix){
count++;
int diff = Math.abs(nodes.size() - list.size());
if (diff != 0){
for (int i = 0; i < diff; i ++)
matrix.get(count-1).add(0);
}
}
}
내가 행렬의 크기를 노드가 추가 될 때마다 업데이트 :이 단서를 보유 할 수 있습니다으로 나는 또한 매트릭스의 건설에 대한 코드를 추가합니다. 이 답변이 단지 얼굴을 응시하는 경우가 아니기를 바란다. 그러나 나는 그것을보기에는 너무 피곤하다. 어떤 도움을 주셔서 감사합니다!
당신이 옳습니다 .- 감사합니다. – Busdriver667