lab
from collections import defaultdict class Graph: def __init__(self): self.graph = defaultdict(list) def add_edge(self, u, v): self.graph[u].append(v) def bfs(self, start): visited = set() queue = [start] while queue: vertex = queue.pop(0) if vertex not in visited: print(vertex, end=" ") visited.add(vertex) for neighbor in self.graph[vertex]: if neighbor not in visited: queue.append(neighbor) # Example us...