最小生成树问题
小弟写了个简单的最小生成树程序,但是输入邻接矩阵后程序就卡死了,不知道什么原因,请各位帮忙看下。#include<stdio.h>
#define N 1000
#define M 1<<30
int w[N][N]={0};
bool v[N] = {0};
int link[N]={0};
int main(void)
{
int n;
printf("输入邻接矩阵的维数:\n");
scanf("%d",&n);
printf("输入邻接矩阵:\n");
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
scanf("%d",&w[i][j]);
int min = M;
int E_count = 0;
while(E_count < n-1)
{
for(int i = 0; i < n; i++)
for(int j = i; j < n; j++)
if((min > w[i][j]) && (!v[i]) && (!v[j]))
{
min=w[i][j];
v[i]=true;
v[j]=true;
link[j]=i;
E_count++;
}
}
int cost = 0;
for(int i = 0; i < n; i++)
cost += w[link[i]][i];
printf("最小生成树的权和为:\n%d\n",cost);
return 0;
}