Java-программа для поиска в ширину или BFS для графика

Опубликовано: 7 Октября, 2022

Обход в ширину (или поиск) графа аналогичен обходу в ширину дерева (см. метод 2 в этом посте). Единственная загвоздка здесь в том, что, в отличие от деревьев, графы могут содержать циклы, поэтому мы можем снова прийти к одному и тому же узлу. Чтобы избежать обработки узла более одного раза, мы используем логический массив посещений. Для простоты предполагается, что все вершины достижимы из начальной вершины.
Например, на следующем графе мы начинаем обход с вершины 2. Когда мы приходим к вершине 0, мы ищем все соседние с ней вершины. 2 также является смежной вершиной с 0. Если мы не будем отмечать посещенные вершины, то 2 будет обработана снова, и это станет незавершающим процессом. Обход в ширину следующего графа равен 2, 0, 3, 1.

РЕКОМЕНДУЕМЫЕ СТАТЬИ