魯大師的最小生成樹的Prim演算法c 實現

2021-10-10 20:39:51 字數 1136 閱讀 7950

不是很難理解,不過突然感覺 c++這個物件導向的語言被我用成了面向過程好可惜

#include

#include

using

namespace std;

const

int mvnum =

1e2+5;

const

int inf =

65535

;//權值的資料型別

typedef

int vrtype;

//節點型別

typedef

char vertextype;

typedef

struct

mgraph;

typedef

struct prime_table

prime_table;

prime_table closedge[mvnum]

;//查詢節點的對應的陣列下標

intlocatevex

(mgraph g, vertextype u)

}int minimum (prime_table *closedge,

int vexnum)}}

return res;

}void

print

(vertextype u)

//用prime從頂點u出發 構造網的最小生成樹

//圖用鄰接矩陣來儲存, u是圖的乙個節點

//時間複雜度: n + (n-1)*(n + n) 約等於o(2n^2) 約等於 o(n^2)

void

minispantree_p

(mgraph g, vertextype u)

} closedge[k]

.lowcost =0;

for(

int i =

1; i < g.vexnum; i++)}

}}intmain()

}for

(int i =

0; i < g.arcnum; i++

)minispantree_p

(g, g.vextable[0]

);return0;

}

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