Маркировка подключенных компонентов

Я задавал подобный вопрос несколько дней назад, но мне еще предстоит найти эффективный способ решения моей проблемы. Я разрабатываю простую консольную игру, и у меня есть 2D-массив, подобный этому:

1,0,0,0,1
1,1,0,1,1
0,1,0,0,1
1,1,1,1,0
0,0,0,1,0

Я пытаюсь найти все области, которые состоят из соседних 1-х (4-х сторонняя связь). Итак, в этом примере 2 области следующие:

1
1,1
  1
1,1,1,1
      1

а также :

       1
     1,1
       1

Алгоритм, над которым я работал, находит всех соседей соседей ячейки и прекрасно работает на матрицах такого типа. Однако, когда я использую большие массивы (например, 90 * 90), программа работает очень медленно, и иногда используемые огромные массивы вызывают переполнение стека.

Один парень по моему другому вопросу рассказал мне о маркировке подключенных компонентов как эффективном решении моей проблемы.

Может кто-нибудь показать мне какой-нибудь код C ++, который использует этот алгоритм, потому что я немного озадачен тем, как он на самом деле работает вместе с этой структурой данных с несвязным множеством ...

Большое спасибо за вашу помощь и время.

Ответы на вопрос(5)

Ваш ответ на вопрос