我正在使用一种union-find
算法。在我的程序的第一部分,算法计算一个大集合的一个分区E
。
之后,我想检索S
包含给定节点的集合的所有成员x
。
直到现在,我天真地测试E
了 set的所有元素的成员资格S
。但是昨天我正在阅读“算法简介”(CLRS,第 3 版,ex. 21.3-4),并且在练习中,我发现:
假设我们希望添加操作
PRINT-SET(x)
,给定一个节点并以任意顺序x
打印 集合的所有成员。x
展示我们如何向不相交集森林中的每个节点添加一个属性,从而使PRINT-SET(x)
时间与x
的集合成员数成线性关系,并且其他操作的渐近运行时间保持不变。
“与集合的成员数量成线性关系x
”对我的问题将是一个很大的改进!所以,我正在尝试解决这个问题......经过一些不成功的尝试后,我在 Stack Overflow 上寻求帮助!