Graph g ← 建立圖形 depthFirstSearch(): for v ← 0 to g.N-1: color[v] ← WHITE for v ← 0 to g.N-1: if color[v] = WHITE: dfs(v) dfs(u): color[u] ← GRAY for v in g.adjLists[u]: if color[v] = WHITE: dfs(v) else if color[v]=GRAY: 邊 (u, v) 為 Back Edge color[u] ← BLACK