prim 演算法
以領接矩陣儲存 圖g
bool b[i]表示頂點i是否被訪問,初始化時候memset(b,false,sizeof(b));
b[0]=value,表示從第0個節點開始。
用value[i] 表示節點i到最小生成樹a中定點的最小距離。例如value[1]=a[0][1];
int sum記錄權值和
int min判斷最小權值,初始值要設定的大,例如 min = 0xffffff;
int temp記錄插入最小生成樹a的定點。
**:例如存好了鄰接矩陣a;
memset(b,flase,sizeof(b));
b[0] = ture;
for(i=1; i < n;i++)
value[i] = a[0][i];
int sum;
for (i = 1; i < n; i++)
int min = 0xffffff;
int temp = 0;
for(j = 1; j < n; j++)
if(!b[j] && min > value[j])
min = value[i];
temp = j;
sum+=min;
b[temp] = true;
for(j = 1; j < n;j++)
if(!b[j] && value[j] > a[temp][j])
value[j] = a[temp][j];
最小生成樹(prim演算法)
最小生成樹是資料結構中圖的一種重要應用,它的要求是從乙個帶權無向完全圖中選擇n 1條邊並使這個圖仍然連通 也即得到了一棵生成樹 同時還要考慮使樹的權最小。prim演算法要點 設圖g v,e 其生成樹的頂點集合為u。把v0放入u。在所有u u,v v u的邊 u,v e中找一條最小權值的邊,加入生成樹...
最小生成樹 prim 演算法
一 演算法描述 假設存在連通帶權圖g v,e 其中最小生成樹為t,首先從圖中隨意選擇一點s屬於v作為起始點,並將其標記後加入集合u 中。然後演算法重複執行操作為在所有v屬於u,u屬於v u的邊 v0,u0 屬於e中找一條代價最小的邊並加入集合t,同時將u0併入u,直到u v為止。這是,t中必有n 1...
最小生成樹Prim演算法
prim演算法的執行非常類似於尋找圖的最短通路的dijkstra演算法。prim演算法的特點是集合a中的邊總是只形成單棵樹。如圖5所示,陰影覆蓋的邊屬於正在生成的樹,樹中的結點為黑色。在演算法的每一步,樹中的結點確定了圖的乙個割,並且通過該割的輕邊被加進樹中。樹從任意根結點r開始形成並逐漸生長直至該...