Мое понимание базового поиска в ширину обхода для графика:
BFS
Start from any node.
Add it to queue.
Add it to visited array.
While queue is not empty:
Remove head from queue;
Print node.
add all unvisited direct subchilds to que;
mark them as visited
Однако, если мы должны пройти направленный граф изданный узел и не все узлы доступны из данного узла (прямо или косвенно), как мы используем BFS для обхода графика этой ситуации?
Не могли бы вы также объяснить в этом графе:
a=> b => d => e => d
a=> c => d
Здесь, если начальный узел b
, мы никогда не выводим a
и c
.
Я что-то упустил в алгоритме?
Я использовал HashMap<String, ArrayList> adj = new HashMap();
, чтобы создать список смежности для хранения графа.