深度优先遍历
来源:互联网 发布:软件测试v模型 编辑:程序博客网 时间:2024/05/16 23:41
/** * 深度优先遍历 * @param graph * @param start */public static void DFS(int[][] graph,int start){BitSet flags = new BitSet(graph.length);DFSA(graph, start, flags);}private static void DFSA(int[][] graph,int cur,BitSet flags){//设置递归停止条件停止递归//if(flags.get(cur))//return;//flags.set(cur);//System.out.println(cur);//for(int i=0;i<graph.length;i++){//if(graph[cur][i]==1){//DFSA(graph,i,flags);//}//}//在递归前阻止递归flags.set(cur);System.out.println(cur);for(int i=0;i<graph.length;i++){if(graph[cur][i]==1 && !flags.get(i)){DFSA(graph,i,flags);}}}
/** * 非递归的深度优先遍历,使用stack来模拟递归时堆栈的行为 * @param graph * @param cur */public static void DFSNR(int[][] graph,int cur){LinkedList<Integer> stack = new LinkedList<Integer>();BitSet flags = new BitSet(graph.length);stack.push(cur);while(!stack.isEmpty()){cur = stack.pop();if(flags.get(cur))continue;flags.set(cur);System.out.println(cur);for(int i=graph.length-1;i>=0;i--){if(graph[cur][i]==1){stack.push(i);}}}}
0 0
- 深度优先搜索遍历
- 深度优先遍历图
- 深度优先遍历图
- 深度优先遍历DFS
- 深度优先遍历
- 图--深度优先遍历
- 深度优先遍历
- 图深度优先遍历
- 深度优先遍历
- 邻接矩阵深度优先遍历
- DFS-深度优先遍历
- 深度优先遍历
- 深度优先遍历
- DFS深度优先遍历
- 深度优先遍历
- 深度优先遍历 java
- 图遍历-深度优先
- 深度优先遍历(DFS)
- web前端性能优化
- 递归
- 广度优先遍历
- 代理服务器和反向代理服务器
- 一封家书,道尽顶尖人才的思维境界(转载)
- 深度优先遍历
- 只管去做—用emacs的org-mode做时间管理(4.完结)
- Java关键字final、static使用总结
- Android 各国语言包字符串缩写
- Fedora20 安装配置
- CVPR2013感兴趣文章列表
- 泛洪填充
- ASP.NET中应用Excel:(1)访问Excel
- ASP.NET中应用Excel:(2)释放对象