|
|
- from collections import defaultdict
-
- #--class for directed graph with adjacency list representation
- class Graph:
-
- #--Constructor of the class
- def __init__(self):
- #--default dictionary to store graph
- self.graph = defaultdict(list)
-
- '''
- --function to add an edge
- --inputs, starting point of the graph
- '''
- def addEdge(self,u,v):
- self.graph[u].append(v)
-
- '''
- --to print a BFS of graph
- --inputs, starting point of the graph
- --Prints the BFS starting from the input point
- '''
- def BFS(self, s):
-
- # Mark all the vertices as not visited
- visited = [False] * (len(self.graph))
-
- queue = []
-
- # Mark the source node as visited and enqueue it
- 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
-
|