diff --git a/bfs.py b/bfs.py new file mode 100644 index 0000000..ca7b780 --- /dev/null +++ b/bfs.py @@ -0,0 +1,44 @@ + +from collections import defaultdict + + +class Graph: + + def __init__(self): + + self.graph = defaultdict(list) + + def addEdge(self, u, v): + self.graph[u].append(v) + + def BFS(self, s): + + visited = [False] * (max(self.graph) + 1) + + queue = [] + + queue.append(s) + visited[s] = True + + while queue: + + s = queue.pop(0) + print(s, end=" ") + + for i in self.graph[s]: + if visited[i] == False: + queue.append(i) + visited[i] = True + + +g = Graph() +g.addEdge(0, 1) +g.addEdge(0, 2) +g.addEdge(1, 2) +g.addEdge(2, 0) +g.addEdge(2, 3) +g.addEdge(3, 3) + +print("Following is Breadth First Traversal" + " (starting from vertex 2)") +g.BFS(2)