Задачи модуля "Графы": от матриц смежности до обходов
Теоретические вопросы (Квиз)
Проверьте, насколько хорошо вы усвоили теоретическую часть модуля:
Вопрос 1
Какие три основных способа представления графов в памяти компьютера чаще всего используются?
Вопрос 2
Что такое разреженный граф и какое представление для него наиболее эффективно?
Вопрос 3
Объясните суть поиска в глубину (Depth-First Search). Какая структура данных лежит в его основе?
Вопрос 4
Объясните суть поиска в ширину (Breadth-First Search). Для решения какой важной задачи он применяется в невзвешенном графе?
Вопрос 5
Как найти количество компонент связности в неориентированном графе, используя алгоритмы обхода?
Задача: Трассировка обходов
Дан следующий неориентированный граф (по сути, дерево):
Задание 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.