Prim算法求最小生成树
问题如下:
算法实现
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//使用prim算法求最小生成树
#define Max 100
#define INFINITE 9999999
float graph[Max][Max];//邻接矩阵,INFINITE说明不相邻
float Prim(float graph[][Max],int n)
{
float minweight[Max];//记录到终点i对应的边值,minweight[i]=0表示点i已经在生成树中
int start[Max];//记录终点i对应的起点,start[i]=0表示点i已经在最小生成树中
int i,j,Min_ID;
float min,sum;
min = 0;
Min_ID = 0;
for(j = 2;j <= n;++j)
{
minweight[j] = graph[1][j];
start[j] = 1;
}
minweight[1] = 0;
sum = 0;
for(i = 2;i <= n;++i)
{
min = INFINITE;
for(j