求无向图的连通分量 算法

博主分享了自己耗时两天理解无向图连通分量算法的过程,算法涉及将无向图存储在矩阵中,通过遍历并合并连通节点来找到连通分量。虽然细节复杂,但博主希望通过代码实现来加深理解,弥补两年前应掌握的知识空白。
摘要由CSDN通过智能技术生成

耗时两天,终于把怎样求无向图的连通分量看懂了。算法是以前老师告诉我的吧,现在忘了,所以才看明白

 

一个无向图放在一个矩阵里面,比如一个3*3的

list [0] 

list [1]

list [2]

循环遍历,如果两两组合,找出最小值与平均值比较,把一个列表与前一个列表合并,然后删掉这个列表。说不清楚了,写的时候还是有很多细节的地方要注意的啊

不说了,上代码


//本程序实现的是求一个无向图的连通分量

class triplet
{
	public int x;
	public int y;
	public double dist;
	
	public triplet(int x_v, int y_v, double dist_v) 
	{
		x = x_v;
		y = y_v;
		dist = dist_v;
	}
}
//建立一个类,使用里面的变量。使用它要实例化
public class ConnComp {
	
	public static double[][] matrix={
  { 0, 0.2, 0, 0},
  		   { 0.2, 0, 0, 0 },
  		   {0, 0, 0, 0.4 },
  		   {0, 0, 0.4, 0}
    };
	public static int NODE=4;
	 public static int[][] list=new int[NODE][NODE];
	 public static int DELETED=0;
	 pub
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值