# グラフ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()