Advertisement
Guest User

Untitled

a guest
Oct 16th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.85 KB | None | 0 0
  1. from collections import defaultdict
  2.  
  3. class Graph:
  4.  
  5.   def __init__(self):
  6.     self.graph = defaultdict(list)
  7.  
  8.   def add_edge(self, u, v):
  9.     self.graph[u].append(v)
  10.  
  11.   def bfs(self, s):
  12.     vis = [False] * len(self.graph)
  13.     q = []
  14.  
  15.     q.append(s)
  16.     vis[s] = True
  17.     while q:
  18.       front = q.pop(0)
  19.       print (front, end = " ")
  20.       for edge in self.graph[front]:
  21.         if not vis[edge]:
  22.           vis[edge] = True
  23.           q.append(edge)
  24.  
  25.   def dfs(self, node, vis):
  26.     vis[node] = True
  27.     print(node, end=" ")
  28.     for v in self.graph[node]:
  29.       if not vis[v]:
  30.         self.dfs(v, vis)
  31.    
  32.  
  33.  
  34. g = Graph()
  35. g.add_edge(0, 1)
  36. g.add_edge(0, 2)
  37. g.add_edge(1, 2)
  38. g.add_edge(2, 0)
  39. g.add_edge(2, 3)
  40. g.add_edge(3, 3)
  41. g.bfs(2)
  42.  
  43. print("\n")
  44.  
  45. vis = [False] * len(g.graph)
  46. g.dfs(2, vis)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement