BFS on a graph (adjacency list)?
void BFS(Dictionary<int, List<int>> graph, int start) {
var visited = new HashSet<int>();
var queue = new Queue<int>();
queue.Enqueue(start);
visited.Add(start);
while (queue.Count > 0) {
int node = queue.Dequeue();
Console.WriteLine(node);
foreach (var neighbor in graph[node]) {
if (!visited.Contains(neighbor)) {
visited.Add(neighbor);
queue.Enqueue(neighbor);
Explanation:
Classic BFS using a queue and visited set.