题目: 求如图所示,用kruskal算法求下面图的最小生成树:
话不多说,程序如下:
#include<iostream>
#include<stdlib.h>
#define N 7
using namespace std;
typedef struct _node{
int val;
int start;
int end;
}Node;
Node V[N];
int cmp(const void *a, const void *b)
{
return (*(Node *)a).val - (*(Node*)b).val;
}
int edge[N][3] = { { 0, 1, 3 },
{ 0, 4, 1 },
{ 1, 2, 5 },
{ 1, 4, 4 },
{ 2, 3, 2 },
{ 2, 4, 6 },
{ 3, 4, 7}
};
int father[N] = { 0, };
int cap[N] = {0,};
void make_set() //初始化集合,让所有的点都各成一个集合,每个集合都只包含自己
{
for (int i = 0; i < N; i++