并查集的模块接口文件代码

30 天前 · 105 人浏览
// unionfind.cppm - 模块接口文件
export module UnionFind;

import <vector>;
import <numeric>;

export class UnionFind {
public:
    // 构造函数,初始化并查集,大小为size
    UnionFind(int size);
    
    // 查找元素x的根节点,带有路径压缩优化
    int find(int x);
    
    // 合并元素x和y所在的集合,按秩合并
    void unionSets(int x, int y);
    
    // 检查x和y是否属于同一集合
    bool connected(int x, int y);
    
private:
    std::vector<int> parent;  // 父节点数组
    std::vector<int> rank;    // 秩数组
};
Theme Jasmine by Kent Liao