图的深度遍历——java实现

图的深度遍历——java实现

先来一张图便于大家理解:
《图的深度遍历——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);
            }
        }
    }
    }

希望大家可以看懂~

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/dandan_18/article/details/53899849
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞