BFS - очередь (слайс или канал), помечаем посещенные; обрабатываем соседей. DFS - стек (рекурсия или явный стек). В Go для графа: мапа смежности map[int][]int или структуры узлов. BFS для кратчайшего пути в невзвешенном графе. DFS для топологической сортировки, поиска циклов, компонент связности. Рекурсия с ограничением глубины или итеративный DFS для больших графов.
// BFS
queue := []int{start}
visited := map[int]bool{start: true}
for len(queue) > 0 {
cur := queue[0]
queue = queue[1:]
for _, next := range graph[cur] {
if !visited[next] { visited[next] = true; queue = append(queue, next) }
}
}