最小生成樹
生成樹無向圖的某個子圖中任意兩個頂點都能互相聯通且是一棵樹
乙個連通圖的生成樹是指乙個連通子圖,它含有圖中全部n個頂點,但只有足以構成一棵樹的n-1條邊。一顆有n個頂點的生成樹有且僅有n-1條邊,如果生成樹中再新增一條邊,則必定成環。bfs生成樹
連通圖的bfs生成樹:
n個頂點,n-1條邊;
特點:
連通圖的dfs生成樹:
n個頂點,n-1條邊;
– 特點:
邊上權和最小的生成樹
具體可以參考這篇
prim演算法
o(|e|log|v|)
從任意乙個頂點開始,每次選擇乙個與當前頂點集最近的乙個頂點(邊權最小),並將兩頂點之間的邊加入到樹中。}kruskal演算法
o(|e|log|v|)
按邊權值順序從小到大看一遍,如果不產生圈就把當前邊加入生成樹。最小生成樹 次小生成樹
一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...
最小生成樹
package 圖 最小生成樹是用最少的邊吧把所有的節點連線起來。於是和圖的深度優先搜素差不多。class stack public void push int key public int pop 檢視棧頂的元素 public int peek public boolean isempty cla...
最小生成樹
define max vertex num 20 最大頂點數 typedef int adjmatrix max vertex num max vertex num 鄰接矩陣型別 typedef char vertextype typedef struct mgraph struct dnodecl...