一 prim演算法
/*poj1258
有n個農場,已知這n個農場都互相相通,有一定的距離,現在每個農場需要裝光纖,
問怎麼安裝光纖能將所有農場都連通起來,並且要使光纖距離最小,輸出安裝光纖的總距離
資料:(幾個點,矩陣表示各點中間的距離)
40 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0
*/#include
#include
#define maxint 0x3f3f3f3f
#define n 110//
建立map二維陣列儲存圖表,low陣列記錄每2個點間最小權值,visited陣列標記某點是否已訪問
intmap[n][n],low[n],visited[n];
intn;
intprim()
//最小權值累加
result+=min;//
標記該點
visited[pos]=1;//
更新權值
二 kruskal演算法
#include #includepoj 1258using
namespace
std;
const
int node_num = 102
;int
father[node_num];
intn, ne;
struct
edge
;edge e[node_num*node_num];
bool cmp(const edge& a, const edge&b)
void
make_set()
int find_set(int
i)
return
father[i];
}bool union_set(int a, int b) //
a --> b
else
}int
kruskal()}}
return
mst_edge;
}int
main()}}
printf(
"%d\n
", kruskal());
}return0;
}
kruskal演算法**
最小生成樹專題
首先來回顧一下最小生成樹的概念 在一給定的無向圖 g v,e 中,u,v 代表連線頂點 u 與頂點 v 的邊 即 而 w u,v 代表此邊 的權重,若存在 t 為 e 的子集 即 且為無迴圈圖,使得 的 w t 最小,則此 t 為 g 的最小生成樹。最小生成樹其實是最小權重生成樹的簡稱。簡單地說,就...
專題 最小生成樹 一
這個專題我們討論的問題是在無向圖中尋找一棵最小生成樹 minimum spanning tree 這個問題對於有向圖的討論也是有意義的,只不過演算法更加複雜,這裡我們將只討論無向圖。最小生成樹存在當且僅當圖是連通的。此處我們不對概念做過多的介紹,直接介紹兩種主要的演算法 1.kruskal演算法 2...
專題六 最小生成樹 Kuangbin
kuangbin專題 poj1251 jungle roads 最小生成樹 poj1278 networking 最小生成樹 poj2031 building a space station 最小生成樹 poj2421 constructing roads 最小生成樹 zoj1586 qs netw...