我在连接组件标签中使用不相交集很困难.我已经查看了许多示例,并且在
this question中,Bo Tian提供了一个非常好的Disjoint Sets实现为C链表.我已经在我的程序中实现了连接组件标签(标签是简单的整数),但我很难解决具有不相交集的标签之间的等价性.
任何人都可以帮助我 – 也许使用Bo Tian的实施?我认为,当他们达到这一点时,这也将有助于其他人.
编辑
我的算法遍历图像,当它找到两个标签时,两个连接的像素具有不同的标签,它必须在“等价注册表”(它是Disjoint set forest)中做一个注释.在循环整个图像之后,我必须通过(在图像上第二次传递)查看注册表来解决等价,然后将具有等效标签的这些像素标记为最小值.
解决方法
检查这个
tutorial on DJS.只有修改是在联合期间你必须连接更大的更小,所以root总是最小的集合.