私の質問は、どちらの検索タイプのメカニズムについても実際にはありません。それよりもずっと平凡だと思います。どちらの入力と出力もわかりません。より具体的には、CLRSでは、BFSは入力としてグラフとソースノードを取りますが、DFSはグラフのみを取ります。それ以降、DFSはどこを検索してもかまいませんか?
これが入力の混乱です。出力の混乱は、DFSでは、完了すると、各ノードの検出と終了時間を記録するテーブルのような構造になっているということです。そこからソリューション、つまりソースノードから宛先ノードへのパスをどのように抽出しますか?
私は理にかなっていると思います。ありがとう!
編集:これが、DFSがソースノードを取得しないという意味です。これはCLRSからのDFS擬似コードです。私はそれがどこにもソースノードを取っているのを見ません。私が見ているのは、グラフ内のすべてのノードを通過することだけです。
DFS(G)
1 for each vertex u ∈ V[G]
2 do color[u] ← WHITE
3 π[u]← NIL
4 time ← 0
5 for each vertex u ∈ V[G]
6 do if color[u] = WHITE
7 then DFS-VISIT(u)
DFS-VISIT(u)
1 color[u] ← GRAY ✄ White vertex u has just been discovered.
2 time ← time+1
3 d[u] ← time
4 for each v ∈ Adj[u] ✄ Explore edge (u,v).
5 do if color[v] = WHITE
6 then π[v] ← u
7 DFS-VISIT(v)
8 color[u] ← BLACK ✄ Blacken u;it is finished.
9 f [u] ← time ← time+1