DFS僞代碼:
DFS(G,s)
for each vertex v in V(G)
status[v] = WHITE
/******其他初始化******/
for each vertex v in V(G)
if(status[v]==WHITE)
DFS-VISIT(v)
DFS-VISIT(v)
status[v] = GRAY
for each vertex t in Adj(v)
if status[t] = WHITE
DFS-VISIT(t)
/******其他操作******/
status[v] = BLACK
關於DFS的C語言版和拓撲排序以及是否存在環,引用一位大牛的博客:
http://blog.csdn.net/acceptedxukai/article/details/6959882