最小生成樹 Prim

2021-09-29 10:27:31 字數 1172 閱讀 6879

// 頂點數目的最大值

typedef

char vertextype;

// 頂點的資料型別

typedef

int edgetype;

// 整數表示權值

typedef

struct

mgraph;

void

creategraph

(mgraph *g)

for(

int i =

0; i < g-

>vexnum;

++i)

}for

(int i =

0; i < g-

>arcnum /2;

++i)

}void

minispantree_prim

(mgraph *g)

// 演算法核心

for(

int i =

1; i < g-

>vexnum;

++i)

j++;// 再看看下乙個點

}printf

("(%d->%d)"

, adjvex[k]

, k)

;// 列印權值最小的邊

lowcost[k]=0

;// 將這個頂點加入生成樹

//生成樹加入了新的頂點,從下標未1的頂點開始更新lowcost陣列值

for(j =

0; j < g-

>vexnum;

++j)}}

}int

main

(void

)

最小生成樹 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 ...