Template
def bfs(): queue = deque() seen = set() queue.append(start_node) seen.add(start_node) while queue: node = queue.popleft() for neigh in neighbors(node): if neigh not in seen: visit(neigh) queue.append(neigh) seen.add(neigh)