# 求圖形 g 的最小生成樹 # T: 已在最小生成樹內的節點集合 prim(g): s ← 0 # 決定適當的起點 for v ← 0 to g.N-1: dist[v] ← INF parent[v] ← NIL # 沒有父節點的狀態 dist[s] ← 0 while True: u ← NIL minv ← INF # find minimum for v ← 0 to g.N-1: if v 已在 T 內: continue if dist[v] < minv: u ← v; minv ← dist[v] if u = NIL: break 將 u 新增至 T 內 for v ← 0 to g.N-1: if g.weight[u][v] = INF: continue if v 已在 T 內: continue if dis[v] > weight[u][v]: dist[v] ← weight[u][v] parent[v] ← u