# 对图 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()