Prim算法求最小生成树

#include<iostream>using namespace std;#define MAXN 10002int Map[100][100],Vis[100],Low[100],Tree[100];int n;void Prim(){int i,j,p;int minc;memset(Vis,0,sizeof(Vis));Vis[0]=1;for( i=1;i<n;i++){Low[i]=Map[0][i];Tree[i]=0;}for(i=1;i<n;i++){minc=MAXN;p=-1;for( j=0;j<n;j++)if(Vis[j]==0&&minc>Low[j]){p=j;minc=Low[j];}Vis[p]=1;cout<<"("<<p<<","<<Tree[p]<<")"<<" ";for( j=0;j<n;j++)if(Vis[j]==0&&Low[j]>Map[p][j]){Low[j]=Map[p][j];Tree[j]=p;}}}void Solve(){int m;cin>>n>>m;for(int i=0;i<n;i++)for(int j=0;j<n;j++)Map[i][j]=MAXN;for(int i=0;i<m;i++){int s,t,num;cin>>s>>t>>num;Map[s][t]=num;}Prim();}int main(){Solve();return 0;}

,人的不幸缘于欲望,所以知足者长乐。

Prim算法求最小生成树

相关文章:

你感兴趣的文章:

标签云: