最小生成数(并查集)Kruskal算法
Posted |瑾诺学长|
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最小生成数(并查集)Kruskal算法相关的知识,希望对你有一定的参考价值。
并查集:
使用并查集可以把每个连通分量看作一个集合,该集合包含连通分量的所有点。这两两连通而具体的连通方式无关紧要,
就好比集合中的元素没有先后顺序之分,只有属于和不属于的区别。
#define N 100 int father[N]; void init() { for(int i=0;i<n;i++) father[i]=1; } void union(int x,int y) //合并两元素所在集合 { x=getfather(x); y=getfather(y); if(x!=y) father[x]=y; } /*bool same(int x,int y) //判断两元素在不在同一集合 {return getfather(x)==getfather(y);} */ int getfather(int x) //获得该元素的父亲节点 { while(x!=father[x]) {x=father[x];} return x; }
以上是关于最小生成数(并查集)Kruskal算法的主要内容,如果未能解决你的问题,请参考以下文章