Навскидку алгоритм такой: Берём любую вершину графа, начинаем с неё обход в глубину. Как только обход завершился - инкрементируем количество компонент связности. Затем смотрим, остались ли ещё не обойдённые вершины. Если да - берём любую из них и снова начинаем обход. Обошли - инкремент счётчика. Смотрим, есть ли не обойдённые вершины... Завершаем подсчёт, когда после очередного обхода не осталось не обойдённых вершин.
0
|