Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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, s):
- vis = [False] * len(self.graph)
- q = []
- q.append(s)
- vis[s] = True
- while q:
- front = q.pop(0)
- print (front, end = " ")
- for edge in self.graph[front]:
- if not vis[edge]:
- vis[edge] = True
- q.append(edge)
- def dfs(self, node, vis):
- vis[node] = True
- print(node, end=" ")
- for v in self.graph[node]:
- if not vis[v]:
- self.dfs(v, vis)
- 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)
- g.bfs(2)
- print("\n")
- vis = [False] * len(g.graph)
- g.dfs(2, vis)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement