紧接着上一博客,实现克鲁斯卡尔算法。
图
源代码
//克鲁斯卡尔算法
#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define MaxVertexNum 100
#define MaxSize MaxVertexNum
int parent[MaxSize];
typedef struct {
int a, b;//顶点
int weight;//权值
}Edge;//边结构体,边结构体数组
Edge edges[MaxSize];
#define VertexType int
#define EdgeType int
typedef struct {//邻接矩阵存储图
VertexType Vex[MaxVertexNum];
EdgeType Edge[MaxVertexNum][MaxVertexNum];
int vexnum, arcnum;
}Graph;
void init_graph(Graph &g)//初始化图
{
VertexType vex;
EdgeType edge;
int vexnum1 = 4;
int arcnum1 = 5;
g.arcnum = arcnum1;
g.vexnum = vexnum1;
for (int i = 0; i < 4; i++)
{
cin >> vex;
g.Vex[i] = vex;//输入节点
for (int j = 0; j < 4; j++)
{
cin >>