《大話資料結構》之Prim演算法

2021-07-08 09:15:29 字數 522 閱讀 4903

prim演算法作用是構造連通網的最小代價生成樹。

演算法思想:以任意乙個點開始,找權值最小的一條邊,將此邊和兩個頂點加入最小生成樹集合,以最小生成樹的點集合中的每乙個點為起點,找尋終點不在集合中的權值最小的邊,並將結果加入集合,重複這個操作,直至所有的點都已經加入集合。

/*

圖的鄰接矩陣表示

*/typedef char vertextype;

typedef int edgetype;

#define maxvex 100

#define infinity 65535

typedef struct

mgraph;

演算法**:

/*

最小生成樹prim演算法

目前最優方法,先從乙個點開始,然後逐步擴大查詢範圍,在一定的範圍內找最小權值的邊

*/void minispantree_prim(mgraph g)

} }}

大話資料結構之Prim演算法

構造最小生成樹可以有多種演算法。其中多數演算法利用了最小生成樹的下列一種簡稱為mst的性質 假設n v,是乙個連通網,u是頂點集v的乙個非空子集。若 u,v 是一條具有最小權值邊的邊,其中u屬於u,v屬於v u,則必存在一顆包含 u,v 的最小生成樹。prim演算法的定義 假設n p,e 是連通網,...

資料結構 Prim演算法

基本思想 加點 設g v,e 是具有n個頂點的連通網,t u,te 是g的最小生成樹,t的初始狀態為u u0 v te 重複執行下述操作 在所有u u,v v u的邊中找一條代價最小的邊 u,v 併入集合te,同時v併入u,直至u v。偽 演算法 prim 輸入 無向連通網g v,e 輸出 最小生成...

《大話資料結構》之Kruskal演算法

需要先對邊按權重排序,或者每次要查詢最小權重的邊。同時用類似於陣列鍊錶的方式,記錄每個頂點之間的連線關係。因為需要避免形成環路。typedef struct edge int find int parent,int f return f void minispantree kruskal mgrap...