Prim演算法求最小生成樹

2021-10-05 15:40:01 字數 792 閱讀 2326

void

prim

(matgraph g,

int v)

for(i=

1;i)//找出n-1個頂點

printf

(" 邊(%d,%d)權為:%d\n"

,closest[k]

,k,min)

; lowcost[k]=0

;//標記k已經加入u

for(j=

0;j)//修改陣列lowcost和closest

if(g.edges[k]

[j]!=

0&& g.edges[k]

[j]}

void

prim

(matgraph g,

int v)

//g為臨接矩陣形式的圖,v為根節點

for(i=

1;i)//找出n-1個頂點

printf

(" 邊(%d,%d)權為:%d\n"

,closest[k]

,k,min)

; lowcost[k]=0

;//標記k已經加入v

for(j=

0;j)//修改陣列lowcost和closest

if(g.edges[k]

[j]!=

0&& g.edges[k]

[j])//這一步是以u-v中的元素為主體,

//如果它到k的長度能小於原來到v的長度,就用到k的長度替換到原來v的長度

}}

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條邊的無向圖,圖中可能存在重邊和自環,邊權可能為負數。求最小生成樹...