Очевидно, с помощью
обходов графа.
Какой из алгоритмов лучше использовать и какие модификации можно внести - зависит уже от конкретных особенностей графа, то есть у произвольного заранее неизвестно, какая вариация окажется самой оптимальной.
Если возможно, то нужно собрать статистику и посмотреть на возможные особенности обрабатываемых графов. Так, например, для "звезд" будет оптимальным обход центра с BFS, после чего обработка лучей с помощью DFS.