乙個有 n 個結點的連通圖的生成樹是原圖的極小連通子圖,且包含原圖中的所有 n 個結點,並且有保持圖連通的最少的邊。
選擇乙個點作為起點 判斷連線每個節點的度 選擇最小的 每進乙個節點 標記已經來過 如果乙個節點所連線的節點都走過了 那麼就退一步 繼續尋找連線邊 選擇最小的
#include #define maxn 7int martix[maxn][maxn] = ,
, ,, , ,
};void find(int * min,int x,int * ex)else
}} if(flag)
else
}ex[pos] = 1;
//printf("設定%d為1\n",pos);
min[pos] = martix[x][pos];
find(min,pos,ex);
} }//printf("%d完成了\n",x);
}int main()
for(j=0;j
ex[0] = 1;
find(min_d,0,ex);
for(i=0;i
}
資料結構 最小生成樹(Prim演算法)
演算法思想 假設n p,是連通圖,te是n上最小生成樹中邊的集合。演算法從u u0 v 開始。重複執行下述操作 在所有u u,v v u的邊 u,v e中找一條代價最小的邊 u0,v0 併入集合te,同時v0併入u,直到u v為止。此時te中必有n 1條邊,則t v,為n的最小生成樹。define ...
資料結構 Prim演算法 最小生成樹
資料結構上機要求用prim演算法求最小生成樹。首先應該明白prim演算法思想,即在乙個網狀圖n v,中,假設m是圖n最小生成樹邊的集合。再設有u和v兩個點集合,從u u0 v m 開始,進入迴圈操作 找出從點集u到點集v u代價最小的邊 u0,v0 u0 u,v0 v u.並把邊併入邊集m中,v0也...
資料結構5 最小生成樹Prim演算法
prim演算法是建立在貪心演算法的基礎上的演算法,主要思想就是每次都去找已訪問的頂點連向未訪問的頂點中最短的邊。演算法思路 1.u集合存放所有最短邊的起始點,lowcost存放待選邊 每次選擇最小邊都從lowcost中選出 2.初始先將u的值都設定為入口點start,將lowcost的待選邊都設定為...