这篇文章主要介绍了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 举报,一经查实,本站将立刻删除。