グラフの基本的な幅優先検索トラバーサルについての私の理解は次のとおりです。
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
ここで、開始ノードが である場合、andb
は出力されません。a
c
アルゴリズムに何か欠けていますか?
HashMap<String, ArrayList> adj = new HashMap();
グラフを保存する隣接リストを作成していました。