export interface GeneralDsuElement { /** * 数据域 */ dat: T; /** * 父节点的索引,如果为负数,则没有父节点 */ parent: number; } export declare class GeneralDsu { constructor(); /** * 集合存储域 */ private _set; /** * 外部访问的集合 */ get dataSet(): GeneralDsuElement[]; /** * 判等依据 * @param data * @param target * @returns */ private _equalCondition; /** * 设置判等条件 * @param outerEqualCondition */ setEqual(outerEqualCondition: (data: T, target: unknown) => boolean): void; /** * 初始化并查集 * @param values */ init(values: T[]): void; /** * 查找元素是否在集合中,若存在,则返回根节点所在的索引,若不在,则返回-1 * @param target 目标元素 */ find(target: unknown): number; /** * 合并集合 * @param set1 * @param set2 */ union(set1: T, set2: T): void; /** * 统计并查集中子树的个数 * @returns */ count(): number; }