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回去,继续循环。好形象的深度搜索
蓝桥-图1-深度优先搜索初识
最新推荐文章于 2024-04-05 20:47:36 发布