- #define M 30
- #define MAX 100
- void minispantree_PRIM(int ad[][M],int n)
- { int i,j,k,p,q,wm;
- q=p=n-1;
- ad[q][q]=1;
- for(k=0;k<(n-1);k++)
- { wm=MAX;
- for(i=0;i<n;i++)
- if(ad[i][i]==1)
- for(j=0;j<n;j++)
- if((ad[j][j]==0)&&(ad[i][j]<wm))
- { wm=ad[i][j];
- p=i;
- q=j;
- }
- ad[q][q]=1;
- printf("%d %d %dn",p+1,q+1,ad[p][q]);
- if(p>q) ad[p][q]=-ad[p][q];
- else ad[q][p]=-ad[q][p];
- }
- }