dis【j】代表從乙個固定點到點j的距離intpr(
)if(sma==inf)
break
;//表示所有點都已經標記
nod[pos]=1
;//標記這個點加入最小樹;
lar=
max(sma,lar)
;//求出需要建設的路中最長的一條,題目需要
for(
int j=
0;jreturn lar;
}
l【i】【j】代表點i到點j的距離
nod是點的集合,當其值為1時代表此點已經被選入最小生成樹中,全部為1時則完成生成樹;
dis中全部加起來就是prim求出的最小生成樹的值,dis【j】就是起始點到j的最短路;
Prim演算法求最小生成樹
本文參考 google 資料結構 c語言 prim演算法,求最小生成樹 include include 最小生成樹prim define max 65535 using namespace std struct graph int prim graph g flag 0 1 將0號結點加入集合s i...
Prim演算法求最小生成樹
cost i j 存i和j之間的距離,vis i 記錄i點是否被訪問,lowc j 存所有與j點連線的邊的最小的權值。每次找最小的lowc j 然後。最小生成樹 int prim int cost maxn int n 點是0 n 1 if minc inf return 1 原圖不連通 ans m...
Prim演算法求最小生成樹
樸素prim演算法 1 距離初始化成正無窮 2 n次迭代 找到集合外距離最近的點,賦值給t 3 用t更新其他點到集合的距離 跟狄傑斯塔拉不一樣,狄傑斯塔拉是跟原點的距離 點與集合所有點距離最短的點 st t true 給定乙個n個點m條邊的無向圖,圖中可能存在重邊和自環,邊權可能為負數。求最小生成樹...