普林演算法 | 會動的演算法

符號表示

資料
連到 T 內節點的最小邊上的權重dist
最小生成樹中的父節點parent
節點間的距離weight

決定起點與初始化
選擇適當起點並將其 dist 初始化為 0。
將其餘節點的 dist 初始化為極大的值。
建立最小生成樹
尋找 dist 最小的節點。# find minimum
指向擁有最小權重的節點。u
更新節點的 dist 與 parent。dist[v] ← weight[u][v]
parent[v] ← u
標示最小生成樹暫定要使用的邊。(v, parent[v])
擴大最小生成樹。將 u 新增至 T 內
輸出最小生成樹
利用父節點的資訊建立最小生成樹。

演算法動畫

決定起點與初始化
普林演算法 | 決定起點與初始化

建立最小生成樹
普林演算法 | 建立最小生成樹

輸出最小生成樹
普林演算法 | 輸出最小生成樹