Module: 徹底的に検索します。 DFS


Problem

1/12

DFS: はじめに (C++)

Theory Click to read/hide

DFS DFS
深さ優先検索 (DFS) は、グラフに関する主要なアルゴリズムの 1 つです。アルゴリズムは O(N + M) で実行されます。
 
アルゴリズム
まず、トップから始めて、このトップの子を考えます。まだ入力していない場合は、それらから DFS を開始します。


Problem

開始頂点 S から無向グラフの深さを横断し、頂点から開始してすべての頂点を横断順序で出力するプロシージャ void dfs (int v) を記述します S はスペースで区切られた 1 行です。

最初の行には 3 つの数値 N  - グラフの頂点の数、M - エッジの数、S - 開始バーテックス。次の M 行で、2 つの変数 Ui Vi が提供されます 、グラフ エッジの説明。入力内のすべての数字が 1000 を超えないこと。

 DFS による走査の順序ですべての頂点を出力します。

上記のプログラムでは、 g[i][j] は、頂点 ij の間にエッジがあることを意味し、配列 used は、このピークを訪れたかどうかを示します。