蓝桥-图1-深度优先搜索初识

package com.jkxy.photo;
// 图的遍历
public class Traverse {
    static int[] book = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    static int sum = 0;
    static int e[][] = { { 0, 0, 0, 0, 0, 0 }, 
                        { 0, 0, 1, 1, 99, 1 },
                        { 0, 1, 0, 99, 1, 99 }, 
                        { 0, 1, 99, 0, 99, 1 },
                        { 0, 99, 1, 99, 0, 99 }, 
                        { 0, 1, 99, 1, 99, 0 } };
    public static void main(String[] args) {
        book[1] = 1;
        dfs(1);
    }
    public static void dfs(int k) {
        int i;
        System.out.print(k);
        sum++;
        if (sum == 5)
            return;
        for (i = 1; i <= 5; i++) {
            if (e[k][i] == 1 && book[i] == 0) {
                book[i] = 1;
                dfs(i);
            }
        }
        return;
    }
}
// 深度优先搜索图遍历:先定义好图对应二维数组
// 二:main:把顶点1标为已访问,从顶点1出发,dfs(1).
// 三,dfs(),输出传过来的参数cur,判断sum是否够5个,不够则循环尝试
// 哪些点(i)与cur相连,相连未访问则标注i为已访,对i继续深挖
// 挖到底则return回去,继续循环。好形象的深度搜索

你可能感兴趣的:(蓝桥)