图的深度遍历——java实现

来源:互联网 发布:淘宝 iphone att群 编辑:程序博客网 时间:2024/06/07 07:22

图的深度遍历——java实现

先来一张图便于大家理解:
这里写图片描述
上图为代码执行图,总算搞清楚的深度遍历的执行。

public class BFSTest {    final static int[][] a={{0,1,0,1,0},{1,0,1,0,1},{0,1,0,0,1},{1,0,0,0,1},{0,1,1,1,0}};    /*    false表示没有被访问过    true表示被访问过     */    boolean[] flag= new boolean[5];    public void DFSTest(int n){        System.out.println(n);        flag[n]=true;        for(int i=0;i<=4;i++){            if(a[n][i]==1&&!flag[i]){                //A:人呢?                //B:我在呀                //B:少了记录已访问的节点的东西吧~                //A:可是这个记录不能写在这个函数里面,不是每次都要调用吗                //B:那就用全局变量啊,所有递归过程中的函数都可以访问它就行啦。                //A:恩恩                //A:OK了                //A:这么简单                //B:你觉得简单的话就画个图出来看看呗                //B:画这个函数运行情况的图。                DFSTest(i);                //System.out.println(i);            }        }    }    }

希望大家可以看懂~

1 0