数据结构之搜索算法 深度优先搜索(DFS)java
伪代码(DFS思路):
DFS(G){
//初始化图
for(each vertex u∈v[G]){
color[u]=WHITE;
parent[u[=null;
}
time=0;//计算时间的全局变量
for(each vertex u∈v[G]){//搜森林
if(color==WHITE){//搜一棵树,一次深搜
dfsVisit(u);
}
}
}
disVisit(G){
color[U[=GRAY;//表示正在搜索
time++;
f[u]=time;
for(each vertex u ∈v[G]){
if(color==WHITE){
parent[v]=u;
disVisit[u];
}
}
color[u]=BLACK;
time++;
f[u]=time;
}