i am currently working on optimizing my code and i have this breadth-first search algorithm but it is a sequential one , i am wondering if i can make it run in parallel using an executor service , yet keeping the algorithm simple. thank you in advance
here is my sequential BFS
public void bfs(int rootNode, isvisited visitor)
{
// BFS uses Queue data structure
Queue<Integer> q = new LinkedList<Integer>();
int currentLevel = 0;
q.add(rootNode);
visitor.visit(rootNode, currentLevel);
while (!q.isEmpty())
{
currentLevel++;
Set<Integer> nextNodes = new LinkedHashSet<Integer>();
q.forEach(currNode ->nextNodes.addAll(outgoingNeighbors(currNode)));
q.clear();
for (int child : nextNodes)
{
visitor.visit(child, currentLevel);
q.add(child);
}
}
}