# グラフgと始点ノードs
depthFristSearch(g, s):
Stack st
st.push(s)
for i ← 0 to g.N - 1:
color[i] ← WHITE
color[s] ← GRAY
while not st.empty():
u ← st.peak() # スタックの頂点を見る
v = g.next(u) # ノードuに隣接するノードvを順番に取り出す
if v ≠ NIL: # 隣接するノードがある
if color[v] = WHITE:
color[v] ← GRAY
st.push(v)
else: # 隣接するノードを調べつくした
color[u] ← BLACK
st.pop()