# 從圖形 g 中建立最小生成樹 MST
kruskal(g):
    MST ← 空串列
    edges ← 利用串列儲存 g 的邊

    將 edges 按照權重大小以升冪方式排序

    DisjointSet ds(g.N) # 生成元素數為 N 且互不相交之集合

    for e in edges:
        u ← e 的第 1 個端點
        v ← e 的第 2 個端點

        if ds.findSet(u) ≠ ds.findSet(v):
            ds.link(u, v)
            將 e 新增至 MST 內