找一条从A到B的路
bool Dfs(V){//判断从V是否有一条到终点B的路
if(V为终点)
return true;
if(V为旧点)
return false;
将V标记为旧点;
对和V相邻的每个节点U{
if(Dfs(U)==true)
return true;
}
return false;
}
int main(){
将所有点都标记为新点;
起点=A;
终点=B;
cout<<Dfs(起点);
}
在图上寻找路径
Node path[MAX_LEN];//MAX_LEN取结点总数即可
int depth;
bool Dfs(int v){
if(v是终点){
path[depth]=v;
return true;
}
if(v是旧点)
return false;
将v标记为旧点;
path[depth]=v;
++depth;
对和v相邻的每个节点u{
if(Dfs(u)==true)
return true;
--depth;
return false;
}
}
int main(){
将所有点标记为新点;
depth=0;
if(Dfs(起点)){
for(int i=0;i<=depth;i++)
cout<<path[i]<<"->";
}
return 0;
}
遍历图上所有节点