Что такое BFS и DFS?

Middle
635 просмотров
AFK Offer AI

BFS (breadth-first search) — обход графа в ширину: сначала все соседи, потом соседи соседей. Использует очередь. Находит кратчайший путь в невзвешенном графе. DFS (depth-first search) — обход в глубину: идёшь как можно дальше, потом возвращаешься. Использует стек (или рекурсию). Хорош для поиска циклов, топологической сортировки, поиска компонент связности. В Go BFS реализуется через slice как очередь, DFS — через рекурсию или явный стек. На собеседованиях задачи на графы — одни из самых частых.

Следующий вопрос

Как работает context.WithDeadline?