# 圖形 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()