Как использовать непересекающиеся наборы в маркировке подключенных компонентов?

У меня возникли проблемы с использованием Disjoint Sets в маркировке связанных компонентов. Я просмотрел множество примеров, а также этот вопрос , где Бо Тиан предоставил очень хорошую реализацию Disjoint Sets в виде связанного списка C ++. Я уже реализовал маркировку связанных компонентов (метки - это простые целые числа) в своей программе, но мне очень трудно разрешать эквивалентности между метками с непересекающимися наборами.

Может ли кто-нибудь помочь мне в этом - может быть, используя реализацию Бо Тиана? Я думаю, что это также поможет другим, когда они дойдут до этого момента.

РЕДАКТИРОВАТЬ

Мой алгоритм просматривает изображение и, когда он находит две метки, два соединенных пикселя с разными метками, он должен сделать отметку в «реестре эквивалентности» (который будет лесом несвязных множеств). После зацикливания всего изображения я должен разрешить эквивалентности (пройдя второй проход по изображению), просмотрев реестр и затем пометив эти пиксели, которые имеют эквивалентные метки, как минимум из набора.

7
задан Community 23 May 2017 в 12:33
поделиться