Для применении алгоритма DFS удобнее всего использовать представление графа в виде списков смежности.
Списки смежности. В этом случае каждой вершине x сопоставляется список смежности, включающий вершины, соединенные с x ребром.
Списки смежности – самый популярный способ представления графов, они позволяют эффективно реализовать большинство алгоритмов.
Списки смежности удобно хранить в "списке списков" , который может быть представлен следующим образом:
словарь или список adj (adj[x]= список/словарь, элементы которого есть описание ребер в смежные вершины :
- вершина - для невзвешенного графа
- (вершина, вес) - для взвешенного граф
Списки смежности позволяют эффективно находить вершины, в которые можно перейти из данной по одному ребру.
Следующий цикл обходит все вершины, в которые можно попасть из вершины s:
for u in adj[s] :
# обработать вершину u