图的DFS
来源:互联网 发布:ubuntu 中文界面 编辑:程序博客网 时间:2024/05/22 16:07
每个节点访问一次,每条边访问一次,时间复杂度O(V+E)
public class DFS {public static int timer = 0;public static void dfs(Graph g, Vertex v){assert(true);if(v.color != Vertex.WHITE){return;}System.out.print(v.id + " ");v.color = Vertex.GRAY;v.start_time = timer++;for(int i=0; i<g.count_vertex; i++){if(g.adjMatrix[v.id][i] > 0){g.vertexs[i].parent = v;dfs(g, g.vertexs[i]);}}v.color = Vertex.BLACK;v.end_time = timer++;}/** * @param args */public static void main(String[] args) {//如果是无向连通图,一次遍历可以读完,只有一棵树Graph g = Graph.createNoDirectedGraph(8, "dfs.txt");g.printGraph();DFS.timer = 0;DFS.dfs(g, g.vertexs[5]);System.out.println();for(int i=0; i<g.count_vertex; i++){System.out.print(g.vertexs[i].start_time + " " + g.vertexs[i].end_time + " : ");}System.out.println();for(int i=0; i<g.count_vertex; i++){System.out.print(g.vertexs[i].parent.id + " ");}System.out.println();//如果有向连通图,一次读不完,多次读,形成森林//Graph g = Graph.createDirectedGraph(8, "dfs.txt");//g.printGraph();//for(int i=0; i<g.count_vertex; i++){//if(g.vertexs[i].color == Vertex.WHITE){//DFS.dfs(g, g.vertexs[i]);//}//}}}
- 图的DFS
- 图的dfs
- 图的DFS实现
- 图的遍历-DFS
- p349图的DFS
- 图的遍历DFS
- 图的dfs、bfs
- 图的遍历(DFS)
- 【图的DFS】图的DFS非递归算法
- 1419 图的DFS遍历
- 图的链表 dfs
- 图的遍历(DFS)
- 图的遍历:DFS BFS
- 图的深度遍历(DFS)
- 图的深度遍历(DFS)
- 图的BFS与DFS
- 图的遍历算法-DFS
- la3486 Cells 图的dfs
- LeetCode_Gray Code
- C#实现远程控制及桌面监控功能(服务端)
- LoadRunner工具的设置技巧问题
- hibernate.hbm2ddl.auto 的设置
- 基于SVG的web页面图形绘制API介绍
- 图的DFS
- CAS3.4 代理模式详细配置
- 个人博客 收藏
- The builder launch configuration could not be found
- easyui combotree --异步加载
- net use 访问远程电脑
- Linux下的调试工具
- 浅谈android的selector,背景选择器
- spring3.0基于注解的定时器以及执行两次的解决办法