最小生成樹(Prim)

2021-10-07 15:23:23 字數 1196 閱讀 6583

#include

using

namespace std;

typedef

char vertextype;

typedef

int edgetype;

const

int maxvex =

100;

const

int infinity =

65535

;typedef

struct

mgraph;

/*建立無向網圖的鄰接矩陣表示

*/void

createmgraph_undirected

(mgraph *g)

for(i =

0;i < g-

>numvertexes;

++i)

//初始化鄰接矩陣,除對角線元素 = 0,其餘為infinity;

else}}

for(k =

0;k < g-

>numedges;

++k)

//完成鄰接矩陣的填寫工作

}void

showmgraph

(mgraph *g)

//列印圖的資訊

else

} cout

void

minispantree_prim

(mgraph *g)

for(i =

1;i < g-

>numvertexes;

++i)

j++;}

printf

("%d<-> %d,權值為%d\n"

,adjvex[k]

,k,g-

>arc[k]

[adjvex[k]])

; sum +

= g-

>arc[k]

[adjvex[k]];

lowcost[k]=0

;for

(j =

1;j < g-

>numvertexes;

++j)}}

printf

("權值之和為:%d\n"

,sum);}

intmain()

最小生成樹 Prim

include stdio.h include stdlib.h include io.h include math.h include time.h define ok 1 define error 0 define true 1 define false 0 define maxedge 20 ...

最小生成樹 prim

演算法模型 由任意乙個頂點開始 將此頂點存入s集,剩餘頂點存入t集合 每次遍歷頂點,取一條能夠連線s與t最短邊e,直到所有頂點全部加入s include include define inf 1 30 int n,m,vis 110 low 110 int map 110 110 int init ...

最小生成樹 PRIM

這個是有關普利姆的演算法,從乙個點出發,找出與這個點相連的所有點的對應的權值最小的那個,然後再把這個點從集合中劃掉。模板如下 include include define inf 0xfffff define max 2005 using namespace std int map max max ...