改造DFS算法计算无向图的连通分量(java算法)
来源:互联网 发布:淘宝食品新规 编辑:程序博客网 时间:2024/05/21 11:20
这是java的eclipse做的程序的源代码,编译成功,测试也正确。下面不多说,附代码:
package DNFLTFZ;public class DFSLT {/** * 这里是注释文档 * * S表示无穷大 * * 连通分量设置为3个 * 0 1 2 3 4 5 6 7 8 * ------------------------- * 0 * 1 s s s s s s s s * 2 s s s 1 1 s s s * 3 s s s s s 1 1 s * 4 s 1 s s s s s 1 * 5 s 1 s s s s s 1 * 6 s s 1 s s s 1 s * 7 s s 1 s s 1 s s * 8 s s s 1 1 s s s * * * @param args */static int color[];static int d =0;public static void main(String[] args) {int s = Integer.MAX_VALUE;int G[][]={{s,s,s,s,s,s,s,s,s}, {s,s,s,s,s,s,s,s,s}, {s,s,s,s,1,1,s,s,s}, {s,s,s,s,s,s,1,1,s}, {s,s,1,s,s,s,s,s,1}, {s,s,1,s,s,s,s,s,1}, {s,s,s,1,s,s,s,1,s}, {s,s,s,1,s,s,1,s,s}, {s,s,s,s,1,1,s,s,s}};color = new int [9];ProcedureDFS(G,9);PDLTGS(color);}private static void PDLTGS(int[] color2) {// TODO 自动生成的方法存根int temp;for(int i=1;i<color2.length;i++){for(int j=color2.length-2;j>=1;j--){if(color2[j+1]<color2[j]){temp=color2[j+1];color2[j+1]=color2[j];color2[j]=temp;}}}for(int i=1;i<color2.length-1;i++){if(color2[i+1]!=color2[i])d++;}System.out.println("连通分量的个数:"+(d+1));}public static void ProcedureDFS(int [][]G,int n){//图是以二维数组的形式保存//n是二维数组的维数,n需要小于10,结果才会正确,否则算法上,初始化没搜索就需要换一个数字for(int i=1;i <= n-1;i++){color[i]=10;//把每一个顶点都置为10,表示还没搜索}for(int i=1;i<= n-1;i++){//对于每一个顶点没被访问的顶点进行访问if(color[i] == 10){color[i]=i;DFS_visit(G,i,color[i]);//遍历其访问的顶点}}}private static void DFS_visit(int[][] g, int i, int color2) {for(int t=1;t<= g.length-1;t++){//邻接点没有被访问到if(color[t] == 10 && g[i][t] != Integer.MAX_VALUE){color[t] = color2;DFS_visit(g,t,color[t]);}}}}
1 0
- 改造DFS算法计算无向图的连通分量(java算法)
- 求无向图的连通分量 算法
- 无向图的连通分量 通用BFS算法
- 无向图dfs求连通分量
- 有向图的强连通分量(tarjan算法)
- PAT 甲级 1021. Deepest Root(dfs:无向图的最远路径、连通分量个数)
- 【数据结构】算法7.7-7.8 无向图的连通分量和生成树
- 无向连通图求割点(tarjan算法去掉改割点剩下的联通分量数目)
- 有向图(6)--计算强连通分量的Kosaraju算法
- 有向图强连通分量 Tarjan算法【java实现】
- 有向连通分量的Tarjan算法
- 无向图的连通分量
- 无向图的连通分量
- 无向图的连通分量
- 求无向图的连通分量
- 无向图的连通分量
- 有向图的强连通分量的三个算法
- 有向图的强连通分量的Tarjan算法
- Unity3D学习之(方法重载)
- 【网络流】 HDOJ 4862 Jump
- phonegap 2.7 ios配置安装详细教程(2.9通用)
- 免费的编程中文书籍索引
- namenode和datanode无法启动问题
- 改造DFS算法计算无向图的连通分量(java算法)
- win2008 只显示一个用户
- 结构体成员的访问
- android手机的四种存储方式
- eclipse中 安卓ADT(adt)插件 --eclipse配置安卓环境
- Flash 基础知识
- HDU 2042 不容易系列之二
- Timer 定时器
- error LNK2019: 无法解析的外部符号 ___glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用 1>GEARS.obj : e