int Find(int* parent, int f)
{
while (parent[f] > 0)
{
f = parent[f];
}
return f;
}
void MinSpanTree(MGraph G)
{
int i, n, m;
Edge edges[MAXEDGE];
int parent[MAXVEX];
for (i = 0; i < G.numVertexes; i++)
{
parent[i] = 0;
}
for (i = 0; i < G.numEdges; i++)
{
n = Find(parent, edges[i].begin);
m = Find(parent, edges[i].end);
if (n != m)
{
parent[n] = m;
cout << edges[i].begin << edges[i].end << edges[i].weight << endl;
}
}
}
https://www.jianshu.com/p/1b8d853de401?from=timeline&isappinstalled=0