如何在连接组件标签中使用不相交集?

Pat*_*ryk 7 c++ algorithm linked-list disjoint-sets data-structures

我在连接组件标签中使用不相交集很困难.我已经看了很多例子,并且在这个问题上,Bo Tian提供了一个非常好的Disjoint Sets实现作为C++链表.我已经在我的程序中实现了连接组件标签(标签是简单的整数),但我很难解决具有不相交集的标签之间的等价.

任何人都可以帮助我 - 也许使用博天的实施?我认为,当他们达到这一点时,这也将有助于其他人.

编辑

我的算法遍历图像,当它找到两个标签时,两个连接的像素具有不同的标签,它必须在"等价注册表"(它将是Disjoint set forest)中做出注释.在循环整个图像之后,我必须通过(在图像上第二次传递)查看注册表来解析等价物,然后将具有等效标签的这些像素标记为最小值.

kil*_*ras 1

查看有关 DJS 的教程。唯一的修改是,在联合过程中,您必须将较大的连接到较小的连接,因此根始终是集合的最小值。