Bfs Dfs algo
Sun Jan 05 2025 12:22:17 GMT+0000 (Coordinated Universal Time)
Saved by
@wayneinvein
class Graph:
def __init__(self):
self.graph = {}
def add_edge(self, u, v):
if u not in self.graph:
self.graph[u] = []
self.graph[u].append(v)
def get_neighbors(self, u):
return self.graph.get(u, [])
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start, end=' ')
for neighbor in graph.get_neighbors(start):
if neighbor not in visited:
dfs(graph, neighbor, visited)
from collections import deque
def bfs(graph, start):
visited = set()
queue = deque([start])
visited.add(start)
while queue:
node = queue.popleft()
print(node, end=' ')
for neighbor in graph.get_neighbors(node):
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
# Example usage
g = Graph()
g.add_edge(1, 2)
g.add_edge(1, 3)
g.add_edge(2, 4)
g.add_edge(2, 5)
g.add_edge(3, 6)
g.add_edge(3, 7)
print("DFS Traversal:")
dfs(g, 1) # Start from node 1
print("\nBFS Traversal:")
bfs(g, 1) # Start from node 1
content_copyCOPY
Comments