トポロジカルソート
まあまあ厳密に書くと
$ Gに対して、以下を満たすよう、$ Vの全要素を含むリスト$ Lを得る。 $ \mathrm{index}(v)を$ L中の$ vの頂点とする。 $ \forall (v, w) \in E; \mathrm{index}(v) < \mathrm{index}(w)
(0) 事前準備
1-1. DFSの開始点として、任意の点$ v \in V - Lを選ぶ $ V - Lは未探索点に当たる。初期状態では$ Vそのもの。
1-3. $ L_vの逆順の系列$ \hat{L_v}を求める。 2-1 $ L := \hat{L} + L
先頭から繋げる理由
2-2 $ V - L = \emptyならば終了。そうでなければ(1)に戻る。
付記
入ってくる辺を持たない$ v \in Vを発見できれば、連結なグラフについては手順1を一発で済ませられる。 紙の上で動かす際にはそれが都合いい。
出力順において、必ずしも祖先 < 子孫とはならないため。