//------------Prim---------------
int cost[N][N];
int lowcost[N];
int prenode[N];

int Prim(int n)
{
int finalcost=0;
int i,j,u,min;

for(i=1;i<=n;i++)
{
lowcost[i]
=cost[1][i];
prenode[i]
=1;
}
lowcost[
1]=-1;

for(i=1;i<n;i++)
{
min
=MAXCOST;
for(j=1;j<=n;j++)
{
if(lowcost[j]!=-1 && lowcost[j]<min)
{
min
=lowcost[j];
u
=j;
}
}
if(min==MAXCOST) return -1;//IMPOSSIBLE_CONNEX

finalcost
+=min;
lowcost[u]
=-1;

for(j=1;j<=n;j++)
{
if(lowcost[j]!=-1 && cost[u][j]<lowcost[j])
{
lowcost[j]
=cost[u][j];
prenode[j]
=u;//这里太给力了!
}
}
}

return finalcost;
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-16
猜你喜欢
  • 2021-09-02
  • 2022-01-08
  • 2022-12-23
  • 2022-01-03
相关资源
相似解决方案