C語言源碼: [cpp] #include<stdio.h> #include<limits.h> #define maxsize 100 int main() { int s[maxsize][maxsize],is[maxsize][2],n,a,b,len,i,j,min,fmin,f; scanf("%d",&n); while(n) { for(i=0;i<n;i++) { is[i][0]=0; is[i][1]=INT_MAX; for(j=0;j<n;j++) s[i][j]=INT_MAX; } for(i=0;i<n*(n-1)/2;i++) { scanf("%d %d %d",&a,&b,&len); s[a-1][b-1]=len; s[b-1][a-1]=len; } is[0][0]=1; len=0; i=1; fmin=0; min=INT_MAX; while(i<n) { for(j=0;j<n;j++) if(is[j][0]==0) { if(s[fmin][j]<is[j][1]) is[j][1]=s[fmin][j]; if(is[j][1]<min) { f=j; min=is[j][1]; } } fmin=f; is[fmin][0]=1; len+=min; min=INT_MAX; i++; } printf("%d\n",len); scanf("%d",&n); } }