How it works?
Урок 3 из 9 курса Поиск в глубину — алгоритмы на графах на Coddy.
DFS хранит маркер visited (посещено) для каждой вершины и stack (стек) вершин для обработки.
Пошаговый процесс:
- Поместите начальную вершину в стек.
- Извлеките вершину из стека. Если она уже была посещена, пропустите ее. В противном случае отметьте ее как посещенную и запишите в порядке обхода.
- Добавьте в стек ее непосещенных соседей. Чтобы посетить их в порядке возрастания, добавляйте их от большего к меньшему, чтобы первым был извлечен самый маленький.
- Повторяйте, пока стек не станет пустым.
Пример на вершинах 0..3 с ребрами [0,1, 0,2, 1,3, 2,3], начиная с 0:
- Посетите 0, затем его наименьшего соседа 1, затем соседа 1 — 3, затем соседа 3 — 2.
- Порядок обхода: [0, 1, 3, 2].
Посещаются только те вершины, которые достижимы из начальной.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Поиск в глубину — алгоритмы на графах
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)