2016-04-12 4 views

答えて

0

すべてのノードをDFSでトラバースする場合は、各ノードごとに反復し、ノードがアクセスされているかどうかを確認し、そのノードを使用してDFSを開始する必要があります。

procedure DFS(G,v): 
     label v as discovered 
     for all edges from v to w in G.adjacentEdges(v) do 
      if vertex w is not labeled as discovered then 
       recursively call DFS(G,w) 

    procedure traverse_by_DFS(G): 
     for v in G: 
      if v is dicovered: 
       continue 
      DFS(G, v) 
+0

だから、私の木のエッジは、その後、私はE> Aの私の最後のツリーエッジを取得するにはDFS(G、E)への再帰呼び出しになるだろう、> B> F> D> Cを行くだろうか? DFSの最初の呼び出しの後、私はe以外のすべての頂点に遭遇しました。 –

+0

@ KyleDenHartog週に接続されたグラフ内のすべてのノードをトラバースする場合は、すべてのノードを反復してアクセスするかどうかをチェックする必要があります。参照はあります。https://www.csd.uoc.gr/~hy583/reviewed_notes/dfs_dags.pdf –

+0

@KyleDenHartog DFSを使用すると、強いグラフになっているかどうかを確認できます。例のように、ノードeにはエッジがありません。他のノードから開始すると、1つのDFS内で永久にノードeにアクセスすることはありません。 –

0

これはおもしろい質問です。あなたはノードAから始める必要があるので、ノードEを押すことはありません。これは真のルートではない開始ノードが与えられた場合の効果です。結果として、完全なトラバーサルが得られます。

関連する問題