Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Graph:
- def __init__(self):
- self.graph = defaultdict(list)
- def add_edge(self, u, v):
- self.graph[u].append(v)
- def dfs(self, node):
- visited = [False for i in range(len(self.graph))]
- stack = []
- stack.append(node)
- visited[node] = True
- while stack:
- node = stack.pop()
- print node
- for i in self.graph[node]:
- if visited[i] == False:
- visited[i] = True
- stack.append(i)
- def Bfs(self, node):
- visited = [False for i in range(len(self.graph))]
- queue = []
- queue.append(node)
- visited[node] = True
- while queue:
- node = queue.pop(0)
- print node
- for i in self.graph[node]:
- if not visited[i]:
- queue.append(i)
- visited[i] = True
- if visited[i] == False:
- if not visited[i]:
- visited = [False for i in range(len(self.graph))]
- visited = [False] * len(self.graph)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement