微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java编程实现深度优先遍历与连通分量代码示例

这篇文章主要介绍了Java编程实现深度优先遍历与连通分量代码示例,

深度优先遍历

深度优先遍历类似于一个人走迷宫:

如图所示,从起点开始选择一条边走到下一个顶点,没到一个顶点便标记此顶点已到达。

当来到一个标记过的顶点时回退到上一个顶点,再选择一条没有到达过的顶点。

当回退到的路口已没有可走的通道时继续回退。

连通分量,看概念:无向图G的极大连通子图称为G的连通分量( Connected Component)。任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量。

下面看看具体实例:

package com.dataStructure.graph; // 求无权图的联通分量 public class Components { private Graph graph; // 存放输入的数组 private Boolean[] visited; // 存放节点被访问状态 private int componentCount; // 连通分量的数量 private int[] mark; // 存储节点所属联通分量的标记 // 构造函数,初始化私有属性 public Components(Graph graph) { this.graph = graph; componentCount = 0; // 连通分量初始数量为 0 visited = new Boolean[graph.V()]; mark = new int[graph.V()]; for (int i = 0; i = 0 && v = 0 && w

通分量数量为 3

总结

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐