深度优先遍历 java
2015-12-20 21:39
495 查看
以下是java代码
package Map; public class DepthFirstSearch{ //定点集合 private String points[] = {"A","B","C","D","E","F","G","H","I"}; //是否访问 private boolean visited[] = new boolean[9]; //地图 private int map[][] = new int[9][9]; //最大值 private int max = Integer.MAX_VALUE; //创建地图 private int[][] createMap(){ int map[][] = { {max, 1,max,max,max, 1,max,max,max}, {max,max, 1,max,max,max, 1,max, 1}, {max, 1,max, 1,max,max,max,max, 1}, {max,max, 1,max, 1,max, 1, 1, 1}, {max,max,max, 1,max, 1,max, 1,max}, { 1,max,max,max, 1,max, 1,max,max}, {max, 1,max, 1,max, 1,max, 1,max}, {max,max,max, 1, 1,max, 1,max,max}, {max, 1, 1, 1,max,max,max,max,max} }; return map; } //初始化参数 public void init(){ this.map = this.createMap(); } //深度遍历开始 public void dsf(){ for(int i = 0 ; i < this.map[0].length ; i++){ if(!this.visited[i]){ //该顶点未访问 this.dfsMain(this.map, i); } } } //深度遍历算法 public void dfsMain(int[][] map,int i){ System.out.print(this.points[i] + " "); this.visited[i] = true; for(int j = 0 ; j < this.map[0].length ; j++){ if(map[i][j]==1&&!this.visited[i]){ this.dfsMain(map, j); } } } public static void main(String args[]){ DepthFirstSearch depthFirstSearch = new DepthFirstSearch(); depthFirstSearch.init(); depthFirstSearch.dsf(); } }
相关文章推荐
- Java中异常处理和设计
- Java按位操作符
- 五、在myeclipse中查询与添加索引实例
- Java学习笔记
- java中的IO流之File类(一)
- java线程同步——竞争条件的荔枝+锁对象
- 了解Spring set依赖注入
- Metrics3.0集成SpringMVC
- Java访问指示符 friendly public private protected
- Java解析Json字符串--数组或列表
- java线程——中断线程+线程状态+线程属性(优先级)
- java线程——什么是线程?
- JAVA 简单使用JDBC实现连接数据
- 深入分析JavaWeb Item31 -- JDBC(MySQL)事务管理
- JavaWeb Session问题整理
- JAVA File的创建及相对路径绝对路径
- 用Eclipse跑Hadoop程序的注意事项
- HBase JavaAPI操作示例
- JavaWeb--概述
- Java类中的成员变量的赋值方法