Графы. Поиск в ширину (bfs) кратчайшие пути в невзвешенном графе

Слайд 2

Очередь (std::queue) Требуется подключение библиотеки #include Модель FIFO Объявление объекта очереди

Очередь (std::queue)

Требуется подключение библиотеки #include
Модель FIFO
Объявление объекта очереди queue<`тип данных`> que;
Добавление

объекта в очередь que.push(obj);
Получение первого объекта из очереди que.front();
Удаление первого элемента из очереди que.pop();
Проверка, пустая ли очередь que.empty();
Слайд 3

Поиск (обход) в ширину (BFS) Для каждой вершины графа будем хранить

Поиск (обход) в ширину (BFS)

Для каждой вершины графа будем хранить цвет.

Пусть изначально вершины будут белыми, когда мы в них входим, они будут становиться чёрными.
Создадим очередь, в которую будем помещать обходимые вершины.
Будем перебирать вершины графа. Если встречаем белую вершину – запускаем из неё поиск в глубину.
Во время поиска в ширину добавляем исходную вершину в очередь.
Пока в очереди есть вершины, достаём вершину из очереди, закрашиваем все белые вершины, смежные с данной, и добавляем их в очередь.