之前的几篇是分开按照创建及不同的算法写的,有点乱,也没有main函数,现在附上完整代码:
#include
#define MAXVEX 100
#define INFINITY 65535
typedef char VertexType;
typedef int EdgeType;
typedef struct
{
VertexType vexs[MAXVEX];
EdgeType arc[MAXVEX][MAXVEX];
int numVertexs,numEdges;
}MGraph;
typedef struct
{
int begin;
int end;
int weight;
}Edge;
int find(int *end,int f)
{
while(end[f]>0)
{
f=end[f];
}
return f;
}
void SortEdge(MGraph G,Edge edges[])
{
int i,j,k=0;
for (i=0;i
edges[j+1].weight)
{
Edge temp=edges[j];
edges[j]=edges[j+1];
edges[j+1]=temp;
}
}
}
}
void MiniSpanTree_Kruskal(MGraph G)
{
int i,n,m;
Edge edges[MAXVEX];
int end[MAXVEX];
SortEdge(G,edges); //对边按照权值大小排序
for (i=0;i
nu