diff --git a/ClairvoyantCoder/bfs b/ClairvoyantCoder/bfs new file mode 100644 index 0000000..6bf3b7d --- /dev/null +++ b/ClairvoyantCoder/bfs @@ -0,0 +1,36 @@ +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 = [] + + visited.add(start) + queue.append(start) + + while queue: + node = queue.pop(0) + print(node, end=' ') + + for neighbor in self.graph[node]: + if neighbor not in visited: + visited.add(neighbor) + queue.append(neighbor) + +# Example usage: +g = Graph() +g.add_edge(0, 1) +g.add_edge(0, 2) +g.add_edge(1, 2) +g.add_edge(2, 0) +g.add_edge(2, 3) +g.add_edge(3, 3) + +print("BFS starting from vertex 2:") +g.bfs(2)