# 基于图 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.unite(u, v)
            向MST 添加 e