Слайд 2Определение
Граф – это набор вершин, некоторые пары из которых соединены между собой
![Определение Граф – это набор вершин, некоторые пары из которых соединены между](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-1.jpg)
рёбрами.
Связный граф – это граф, из любой вершины которого по рёбрам можно попасть в любую другую.
Направленный граф – это граф, по рёбрам которого можно передвигаться только в одном заданном направлении.
Ациклический граф – это граф, не содержащий циклов.
Дерево – это связный граф, имеющий N вершин и N-1 ребро.
Взвешенный граф – это граф, в котором каждое ребро имеет свой вес (обычно длину).
Компонента связности – максимальный по включению связный подграф.
Слайд 3Задача:
Охарактеризуйте граф:
1
2
3
4
5
6
7
8
![Задача: Охарактеризуйте граф: 1 2 3 4 5 6 7 8](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-2.jpg)
Слайд 4Задача:
Охарактеризуйте граф:
1
2
3
4
5
6
7
8
3
2
4
1
5
2
1
![Задача: Охарактеризуйте граф: 1 2 3 4 5 6 7 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-3.jpg)
Слайд 5Задача:
Охарактеризуйте граф:
1
2
3
4
5
6
8
7
![Задача: Охарактеризуйте граф: 1 2 3 4 5 6 8 7](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-4.jpg)
Слайд 6Поиск (обход) в глубину (DFS)
Для каждой вершины графа будем хранить её цвет.
![Поиск (обход) в глубину (DFS) Для каждой вершины графа будем хранить её](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-5.jpg)
Пусть изначально вершины будут белыми, когда мы в них входим, они будут становиться серыми, а когда выходим – чёрными.
Будем перебирать вершины графа. Если встречаем белую вершину – запускаем из неё поиск в глубину.
Во время поиска в глубину перебираем все вершины, смежные той, в которой сейчас находится алгоритм, и по очереди запускаем из них поиск в глубину.
Если поиск запущен не из белой вершины, то дальше его продолжать не следует.
Слайд 7Поиск в глубину. Пример. Шаг 0
7
2
6
5
8
3
4
1
1
3
2
5
4
6
7
![Поиск в глубину. Пример. Шаг 0 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-6.jpg)
Слайд 8Поиск в глубину. Пример. Шаг 1
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 1 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-7.jpg)
Слайд 9Поиск в глубину. Пример. Шаг 2
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 2 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-8.jpg)
Слайд 10Поиск в глубину. Пример. Шаг 3
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 3 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-9.jpg)
Слайд 11Поиск в глубину. Пример. Шаг 4
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 4 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-10.jpg)
Слайд 12Поиск в глубину. Пример. Шаг 5
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 5 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-11.jpg)
Слайд 13Поиск в глубину. Пример. Шаг 6
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 6 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-12.jpg)
Слайд 14Поиск в глубину. Пример. Шаг 7
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 7 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-13.jpg)
Слайд 15Поиск в глубину. Пример. Шаг 8
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 8 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-14.jpg)
Слайд 16Поиск в глубину. Пример. Шаг 9
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 9 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-15.jpg)
Слайд 17Поиск в глубину. Пример. Шаг 10
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 10 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-16.jpg)
Слайд 18Поиск в глубину. Пример. Шаг 11
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 11 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-17.jpg)
Слайд 19Поиск в глубину. Пример. Шаг 12
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 12 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-18.jpg)
Слайд 20Поиск в глубину. Пример. Шаг 13
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 13 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-19.jpg)
Слайд 21Поиск в глубину. Пример. Шаг 14
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 14 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-20.jpg)
Слайд 22Поиск в глубину. Пример. Шаг 15
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 15 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-21.jpg)
Слайд 23Поиск в глубину. Пример. Шаг 16
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 16 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-22.jpg)
Слайд 24Поиск в глубину. Пример. Шаг 17
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 17 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-23.jpg)
Слайд 25Поиск в глубину. Пример. Шаг 18
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 18 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-24.jpg)
Слайд 26Поиск в глубину. Пример. Шаг 19
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 19 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-25.jpg)
Слайд 27Поиск в глубину. Пример. Шаг 20
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 20 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-26.jpg)
Слайд 28Поиск в глубину. Пример. Шаг 21
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 21 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-27.jpg)
Слайд 29Поиск в глубину. Пример. Шаг 22
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 22 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-28.jpg)
Слайд 30Поиск в глубину. Пример. Шаг 23
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 23 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-29.jpg)
Слайд 31Поиск в глубину. Пример. Шаг 24
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 24 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-30.jpg)
Слайд 32Поиск в глубину. Пример. Шаг 25
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 25 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-31.jpg)
Слайд 33Поиск в глубину. Пример. Шаг 26
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 26 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-32.jpg)
Слайд 34Поиск в глубину. Пример. Шаг 27
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 27 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-33.jpg)
Слайд 35Поиск в глубину. Пример. Шаг 28
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 28 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-34.jpg)
Слайд 36Поиск в глубину. Пример. Шаг 29
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 29 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-35.jpg)
Слайд 37Поиск в глубину. Пример. Шаг 30
7
2
6
5
8
3
4
1
1
3
2
6
7
5
4
![Поиск в глубину. Пример. Шаг 30 7 2 6 5 8 3](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-36.jpg)
Слайд 38Хранение графа в программе
Создадим собственную структуру Node для хранения информации о вершине
![Хранение графа в программе Создадим собственную структуру Node для хранения информации о](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-37.jpg)
графа.
В Node будем хранить цвет самой вершины и перечень смежных вершин.
Граф будем хранить в виде массива (вектора) вершин.
Слайд 39Реализация поиска в глубину
Поиск в глубину реализуется в виде рекурсивной функции, критерием
![Реализация поиска в глубину Поиск в глубину реализуется в виде рекурсивной функции,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1130620/slide-38.jpg)
остановки которой является повторное посещение вершины.