Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Algorithm and Data Structre -Graph Algorithm-

uoo38
October 29, 2019

Algorithm and Data Structre -Graph Algorithm-

uoo38

October 29, 2019
Tweet

More Decks by uoo38

Other Decks in Programming

Transcript

  1. Makefileは実質DAG MakefileをDAGで表現してみる A: A.c … B: A … C: A

    B … D: E … E: E.c … C A B E D E.c A.c Makefile DAG
  2. トポロジカルソートの実装 L ← トポロジカルソートされた結果の入る空の連結リスト for each ノード n do visit(n)

    function visit(Node n) if n をまだ訪れていなければ then n を訪問済みとして印を付ける for each n の出力辺 e とその先のノード m do visit(m) n を L の先頭に追加 3 1 2 5 4 L 擬似コード出典:Wikipedia
  3. トポロジカルソートの実装 L ← トポロジカルソートされた結果の入る空の連結リスト for each ノード n do visit(n)

    function visit(Node n) if n をまだ訪れていなければ then n を訪問済みとして印を付ける for each n の出力辺 e とその先のノード m do visit(m) n を L の先頭に追加 3 1 2 5 4 L 擬似コード出典:Wikipedia
  4. トポロジカルソートの実装 L ← トポロジカルソートされた結果の入る空の連結リスト for each ノード n do visit(n)

    function visit(Node n) if n をまだ訪れていなければ then n を訪問済みとして印を付ける for each n の出力辺 e とその先のノード m do visit(m) n を L の先頭に追加 3 1 2 5 4 L 擬似コード出典:Wikipedia
  5. トポロジカルソートの実装 L ← トポロジカルソートされた結果の入る空の連結リスト for each ノード n do visit(n)

    function visit(Node n) if n をまだ訪れていなければ then n を訪問済みとして印を付ける for each n の出力辺 e とその先のノード m do visit(m) n を L の先頭に追加 3 1 2 5 4 L 擬似コード出典:Wikipedia
  6. トポロジカルソートの実装 L ← トポロジカルソートされた結果の入る空の連結リスト for each ノード n do visit(n)

    function visit(Node n) if n をまだ訪れていなければ then n を訪問済みとして印を付ける for each n の出力辺 e とその先のノード m do visit(m) n を L の先頭に追加 3 1 2 5 4 L 擬似コード出典:Wikipedia
  7. トポロジカルソートの実装 L ← トポロジカルソートされた結果の入る空の連結リスト for each ノード n do visit(n)

    function visit(Node n) if n をまだ訪れていなければ then n を訪問済みとして印を付ける for each n の出力辺 e とその先のノード m do visit(m) n を L の先頭に追加 3 1 2 5 4 L 擬似コード出典:Wikipedia