定义概念:
克鲁斯卡尔算法的实质上是使生成树以一种随意的方式生长,初试时每个顶点构成一颗生成树,然后每生长一次就将两棵树合并,到最后合并成一棵树。
按照顺序去查找,直到我们查到一个节点的parent是-1的时候,这个点就是根节点。
方法:
因此,可以设置一个数组parent[n],元素parent[i]表示顶点i的双亲节点,初始时,我们认为每个顶点都是一棵树,而且是只有根节点的树,parent[i]=-1,表示顶点i没有双亲,即该节点是所生成树的根节点;对于边(u,v),设vex1和vex2分别表示两个顶点所在树的根节点,如果vex1!=vex2,则顶点u和v必位于不同的连通分量,令parent[vex2]=vex1,实现将两棵树合并。
不明白的留言,好吧!!