Pseudo Code
Урок 4 из 9 курса Поиск в глубину — алгоритмы на графах на Coddy.
buildAdjacency(n, edges):
adj = n empty lists
for each pair (u, v) in edges:
adj[u].add(v)
adj[v].add(u) # undirected
sort every adj[i] ascending
dfs(n, edges, start):
build adjacency
visited = all false
stack = [start]
order = []
while stack not empty:
node = stack.pop()
if visited[node]: continue
visited[node] = true
order.add(node)
for nb in adj[node] from last to first:
if not visited[nb]: stack.push(nb)
return order- Список смежности преобразует плоский массив ребер в отсортированный список соседей для каждой вершины.
- Добавление соседей в стек в порядке от последнего к первому заставляет стек выдавать сначала наименьшего соседа, благодаря чему порядок обхода становится детерминированным.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Поиск в глубину — алгоритмы на графах
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)