最小生成树模板

参考自

笔记:边多prim,点多kruskal

prim算法:

代码:

int prim(int start)
{
	int i,j,now,sum=0;
	for(i=1;i<=n;i++){//初始化 
		dis[i]=max1;
		vis[i]=false;
	}
	for(i=1;i<=n;i++){//先选定1为起点,
		dis[i]=graph[1][i]; 
	}
	dis[1]=0;
	vis[1]=true;
	for(i=1;igraph[now][j]){
				dis[j]=graph[now][j]; 
			} 
	    }
    }
    if(i

kruskal算法:

代码:

#include
#include
#include 
using namespace std;
const int maxn=10010,maxv=110;
int f[maxv];//
struct node{
	int u,v;//边的两个顶点编号 
	int cost;//边权 
}graph[maxn];
bool cmp(node x,node y)//设置为升序 
{
	return x.cost

 

你可能感兴趣的:(最小生成树)