您的位置:首页 > 编程语言

深度优先搜索的代码框架(DFS)

2018-03-06 21:58 169 查看
判断从V出发是否能走到终点:









//判断从V出发是否能走到终点,如果能,要记录路径

Node path[MAX_LEN]; //MAX_LEN取节点总数即可
int depth;
bool Dfs(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] << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: