大家好,今天小编来为大家解答深度优先搜索算法全面解析这个问题,很多人还不知道,现在让我们一起来看看吧!
公共类深度优先搜索{
私有整数计数;
private boolean[] 标记;
公共DepthFirstSearch(Graph graph, int s) {
标记=新布尔值[graph.V()];
dfs(图, s);
}
private void dfs(Graph graph, int v) {
计数++;
标记[v]=true;
for (int w : graph.adj(v)) {
如果(!标记(w)){
dfs(图,w);
}
}
}
私有int count() {
返回计数;
}
私人布尔标记(int v){
返回标记[v];
}
公共静态无效主(字符串[] args){
int[][] 边={ { 0, 5 }, { 4, 3 }, { 0, 1 }, { 9, 12 }, { 6, 4 }, { 5, 4 }, { 0, 2 }, { 11, 12 }, { 9, 10 },
{ 0, 6 }, { 7, 8 }, { 9, 11 }, { 5, 3 } };
Graph graph=new Graph(edges);
整数s=0;
DepthFirstSearch dfs=new DepthFirstSearch(graph, s);
for (int v=0; v graph.V(); v++) {
if (dfs.marked(v)) {
System.out.print(v + " ");
}
}
System.out.println();
if (dfs.count()==graph.V()) {
System.out.println("已连接");
} 别的{
System.out.println("未连接");
}
}
}输出
深度优先搜索算法全面解析和的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!
【深度优先搜索算法全面解析】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
深度优先搜索真的很有意思,感觉理解了这玩意之后很多算法问题都能看懂一些思路了。
有17位网友表示赞同!
以前听过这个名字,但一直没认真学过,最近有个项目需要用到,打算学习一下DEPTH FIRST SEARCH.
有8位网友表示赞同!
图论里很重要的一项概念啊,应用场景还挺广泛的~
有19位网友表示赞同!
深度优先搜索感觉比广度优先搜索更简单一些吧。
有13位网友表示赞同!
在代码实现上还是挺容易理解的,只要遍历每一层节点再深入下去就好了。
有16位网友表示赞同!
学过它之后觉得树形结构的数据处理变得容易很多了。
有8位网友表示赞同!
刚学习完深度优先搜索,感觉有点像迷宫里寻找出口那种思路,一层一层走进去。
有14位网友表示赞同!
这个算法在人工智能中也有应用吧?
有13位网友表示赞同!
深度优先搜索跟递归有点关系吗?
有12位网友表示赞同!
现在很多编程比赛也会考到关于深度优先搜索的题吧~
有18位网友表示赞同!
感觉学习深度优先搜索能提升代码效率呢。
有13位网友表示赞同!
这个算法的复杂度怎么样?是O(n)吗?
有13位网友表示赞同!
听说过它还能用来解决一些游戏设计的问题吧?
有5位网友表示赞同!
最近打算写一个基于深度优先搜索的项目,希望能学到更多的东西!
有8位网友表示赞同!
这个算法在实际应用中比较常见吗?
有5位网友表示赞同!
有没有什么好推荐的学习资源啊?
有6位网友表示赞同!
感觉深度优先搜索的原理还是挺有逻辑性的。
有19位网友表示赞同!
以后有机会要再深入学习一下这个算法!
有15位网友表示赞同!
知道一些其他用深度优先搜索解决问题的例子吗?
有12位网友表示赞同!
其实很多编程语言都有现成的代码库可以实现深度优先搜索对吧?
有15位网友表示赞同!