Задачи модуля "Графы": от матриц смежности до обходов

Модуль "Графы" • урок 4 из 4 • ~15 минут

Суть урока. Практика - критерий истины. В этом уроке собраны проверочные вопросы и практическая задача на трассировку алгоритмов обхода графа.

Теоретические вопросы (Квиз)

Проверьте, насколько хорошо вы усвоили теоретическую часть модуля:

Вопрос 1

Какие три основных способа представления графов в памяти компьютера чаще всего используются?

Вопрос 2

Что такое разреженный граф и какое представление для него наиболее эффективно?

Вопрос 3

Объясните суть поиска в глубину (Depth-First Search). Какая структура данных лежит в его основе?

Вопрос 4

Объясните суть поиска в ширину (Breadth-First Search). Для решения какой важной задачи он применяется в невзвешенном графе?

Вопрос 5

Как найти количество компонент связности в неориентированном графе, используя алгоритмы обхода?

Задача: Трассировка обходов

Дан следующий неориентированный граф (по сути, дерево):

неориентированный граф задачи из шести вершин: ребра A-B, A-C, B-D, B-E и C-F
Условие задачи: шесть вершин, пять ребер, обход начинается с вершины A

Задание 1: Напишите порядок посещения вершин при поиске в глубину, начиная с вершины A. При равном выборе соседей переходите к вершине, чья буква в алфавите идет раньше.

Задание 2: Напишите порядок посещения вершин при поиске в ширину, начиная с вершины A. Правило выбора соседей - то же.

Показать ответы

Поиск в глубину: A -> B -> D -> E -> C -> F
Объяснение: Из A идем в B (первый по алфавиту). Из B соседи D и E. Выбираем D. У D тупик, возвращаемся в B, идем в E. У E тупик, возвращаемся в B, затем в A. Из A идем в C, из C - в F.

Поиск в ширину: A -> B -> C -> D -> E -> F
Объяснение: На уровне 0: A. На уровне 1 (соседи A): B и C. На уровне 2 (соседи B и C): от B добавляются D и E, от C добавляется F.

разбор задачи: порядок обхода в глубину A, B, D, E, C, F и в ширину A, B, C, D, E, F
Оба ответа рядом: в глубину обход уходит по ветке до конца, в ширину снимает вершины уровень за уровнем
Как вам урок? Спасибо за отзыв!