深さ優先探索
擬似コード

局所変数:g,start,edgeOrdering,adjList,checked

search(v)
checked[[v]]←True
for each u∈N(v) do
if checked[[u]] = False then
Append(edgeOrdering,{v,u})
search(u)

depthFirstSearch(G,start)
for each vertex v∈V do
checked[[v]]←False
search(start)
Return edgeOrdering

depthFirstSearchで定義される局所変数はsearchで使用する。
そのためdepthFirstSearchはBlockとする必要がある。
隣接リストを使った方が楽である。

上記の擬似コードのMathematicaのプログラムを教えて下さいm(_ _)m