Для графа на рисунке 1 найдём кратчайший путь между вершинами A и F. Для достижения цели мы можем: 1. Найти все пути между данными вершинами и выбрать кратчайший
2. Выбрать кратчайший путь при достижении искомой вершины Остановимся на 2-м варианте и применим BFS. BSF использует очередь для обхода вершин 1. Добавим вершину А в очередь (рис. 2) 2. Заберём первый элемент из очереди, в нашем случае А, и посмотрим на соседние с ним вершины (C, D, B). Состояние очереди на рисунке 3 3. В очередь добавляем все соседние с А вершины (рисунок 4) и помечаем вершину А как посещённую (рисунок 5) 4. Из очереди забираем первый элемент - [A, C] и из него целевую вершину С. 5. Для вершины С - добавляем в очередь все соседние с ней вершины. Вершина А тоже является соседней для С но т.к. мы её уже посещали - не будем добавлять её в очередь. Состояние очереди на рисунке 6. Вершину С пометим как посещённую т.к. больше нет путей соединяющих её с другими вершинами (рисунок 7). 6. Далее забираем следующий эл