|
|
- # Python3 Program to print BFS traversal
-
- from collections import defaultdict
-
- # This class represents a directed graph
- # using adjacency list representation
- class Graph:
-
- # Constructor
- def __init__(self):
-
- # default dictionary to store graph
- self.graph = defaultdict(list)
-
- # function to add an edge to graph
- def addEdge(self,u,v):
- self.graph[u].append(v)
-
- # Function to print a BFS of graph
- def BFS(self, s):
-
- # Mark all the vertices as not visited
- visited = [False] * (len(self.graph))
-
- # Create a queue for BFS
- queue = []
-
- # Mark the source node as
- # visited and enqueue it
- queue.append(s)
- visited[s] = True
-
- while queue:
-
- # Dequeue a vertex from
- # queue and print it
- s = queue.pop(0)
- print (s, end = " ")
-
- # Get all adjacent vertices of the
- # dequeued vertex s. If a adjacent
- # has not been visited, then mark it
- # visited and enqueue it
- for i in self.graph[s]:
- if visited[i] == False:
- queue.append(i)
- visited[i] = True
-
- # Driver code
-
-
- 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)
-
|