java sdk 图论算法_算法_图论_深度优先遍历_递归(Java)

1. 写在前面

作为一个初步接触的萌新,我认为很有必要将我学习算法的心路历程给记录下来。

记录也是笔记,方便以后的复习,同时提高我的写作能力。

而且也能起到复习数据结构知识的作用,毕竟当时没怎么学好=.=。

先从图论开始吧

2. 直接代码

无向图的遍历之深度优先_递归

这里选择使用邻接矩阵来表示图

public class RecursionDfs {

//初始化邻接矩阵

static int[][] graph = {

{0,1,1,0,0,0,0,0},

{1,0,0,1,1,0,0,0},

{1,0,0,0,0,1,1,0},

{0,1,0,0,0,0,0,1},

{0,1,0,0,0,0,0,1},

{0,0,1,0,0,0,1,0},

{0,0,1,0,0,1,0,0},

{0,0,0,1,1,0,0,0},

};

//是否访问

static boolean[] isVisited = new boolean[8];

//主方法

public static void main(String[] args) {

for(int i = 0; i < isVisited.length; i++) {//要这个循环,是因为此图可能不止一个连通分量

if(!isVisited[i]) {

dfs(i);//访问

}

}

}

//深度优先遍历算法

public static void dfs(int edge) {

isVisited[edge] = true;//设置已访问

System.out.println("v" + edge);//访问输出语句

for(int i = 0; i

if(graph[edge][i] == 1 && !isVisited[i]) {//==1表示与此顶点有连线,!isVisited[i]表示此顶点还未访问,则进行递归访问

dfs(i);//递归

}

}

}

}

具体图

df490a1ab6b2

程序中的图.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值