Я пытаюсь реализовать функцию BFS, которая будет печатать список узлов ориентированного графа как посещенных с использованием обхода Breadth-First-Search. Функция должна быть реализована не рекурсивно, и она должна проходить через все узлы графа, поэтому при наличии нескольких деревьев она будет печататься следующим образом:
Дерево 1: а, б
Дерево 2: д, е, ч
Дерево 3: .....
Моя основная трудность заключается в понимании того, как заставить функцию BFS проходить через все узлы, если в графе есть несколько деревьев, без перепечатывания ранее посещенных узлов.