次小生成樹的兩種算法:
算法1、step 1. 先用prim求出最小生成樹T.
在prim的同時(shí),用一個(gè)矩陣max[u][v] 記錄 在T中連結(jié)任意兩點(diǎn)u,v的唯一的
路中權(quán)值最大的那條邊的權(quán)值. (注意這里).
這是很容易做到的,因?yàn)閜rim是每次增加一個(gè)結(jié)點(diǎn)s, 而設(shè)已經(jīng)標(biāo)號(hào)了的結(jié)點(diǎn)
集合為W, 則W中所有的結(jié)點(diǎn)到s的路中的最大權(quán)值的邊就是當(dāng)前加入的這條邊.
step 1 用時(shí) O(V^2).
step 2. 枚舉所有不在T中的邊uv, 加入邊uv則必然替換權(quán)為max[u][v]的邊。
算法2、先用prim求出最小生成樹T。
枚舉T中的每一條邊,把它刪除,求剩下的圖的最小生成樹。選所有枚舉得到的生成樹中的最小的那一個(gè)。