图的深度遍历——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);
            }
        }
    }
    }

希望大家可以看懂~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值