最小生成树之克鲁斯卡尔(Kruskal)算法实现,代码详解!!!!

#include
#include
#include
using namespace std;
int n,m;// n 顶点数 m 边数
typedef struct EDGE{
    int u,v;//边的两个端点
    int len; // 边长
}EDGE;
EDGE edge[10001];
bool cmp(EDGE a,EDGE b){
    return a.len %d\n",edge[k].u,edge[k].v);//最小生成树的边
               join(edge[k].u,edge[k].v);//将两个端点归并到一个集合中
                res+=edge[k].len;// 代价和
                countt++;
               }
               k++;
        }
        printf("%d ",res);
    }
}
int main(){
    int n,m;
    printf("请先输入顶点数,后边数:\n");
    while(scanf("%d%d",&n,&m)){
        int arcNum = 0;
        for(int i = 1;i <= m;i++){
            scanf("%d%d%d",&edge[arcNum++].u,&edge[arcNum].v,&edge[arcNum].len);
        }
    }
}

你可能感兴趣的:(数据结构)