Cześć, proszę o pomoc z poniższym kodem.
Chciałbym przeszukać drzewo rozpinajace algorytmem DFS.
W załączniku drzewo.
Kod funkcji DFS:
static void DFS(Integer newCurrentNode, ArrayList<Integer>toVisit)
{
toVisit.removeIf( p-> p == newCurrentNode);
System.out.println("currentNode: " + newCurrentNode + " toVisitSize: " + toVisit.size());
if(toVisit.size() == 0)
return;
else
{
for (Integer integer : toVisit)
{
DFS(integer, toVisit);
}
}
}
MAIN:
ArrayList<Integer> list = new ArrayList<>(4);
list.add(0); list.add(1); list.add(2); list.add(3);
StateSpace.DFS(0, list);
Kod bledu:
currentNode: 0 toVisitSize: 3
currentNode: 1 toVisitSize: 2
currentNode: 2 toVisitSize: 1
currentNode: 3 toVisitSize: 0
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at com.company.StateSpace.DFS(StateSpace.java:23)
at com.company.StateSpace.DFS(StateSpace.java:25)
at com.company.StateSpace.DFS(StateSpace.java:25)
at com.company.Main.main(Main.java:19)
Dodam że w C++ praogma tez sie wywala. Aplikacja przestaje dzialac.