From 27c78a131a1ec1209bb8ef9eae27e0f001fa7459 Mon Sep 17 00:00:00 2001 From: Himangshu Lahkar <95158426+ClairvoyantCoder@users.noreply.github.com> Date: Wed, 4 Oct 2023 00:58:45 +0530 Subject: [PATCH] Breadth first search --- ClairvoyantCoder/bfs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 ClairvoyantCoder/bfs 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)