?? 最小生成樹-prim算法.txt
字號:
#define M 30
#define MAX 100 //相當于無窮值
void minispantree_PRIM(int ad[][M],int n) //用鄰接矩陣ad存儲圖
{ int i,j,k,p,q,wm;
q=p=n-1;
ad[q][q]=1; //從矩陣ad的最后一個結點ad[n-1][n-1]開始查找
for(k=0;k<(n-1);k++)
{ wm=MAX; //wm用來存儲查找出來的未被處理過的最小權值
for(i=0;i<n;i++)
if(ad[i][i]==1)//如果對角線為1,說明這個結點是最小生成樹中的一個結點
for(j=0;j<n;j++) //就在這一行上查找未被處理過的最小權值并存放在wm中
if((ad[j][j]==0)&&(ad[i][j]<wm))
{ wm=ad[i][j];
p=i;
q=j;//p、q存儲找到的最小權值的行和列
}
ad[q][q]=1;
printf("%d %d %d\n",p+1,q+1,ad[p][q]);
if(p>q) ad[p][q]=-ad[p][q];
else ad[q][p]=-ad[q][p];
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -