DFS BFS
from collections import defaultdict, deque
class Graph:
def init(self):
self.graph = defaultdict(list)
def add_edge(self, u, v):
self.graph[u].append(v)
self.graph[v].append(u)
def dfs(self, v, visited=None):
if visited is None:
visited = set()
visited.add(v)
print(v, end=' ')
for neighbor in self.graph[v]:
if neighbor not in visited:
self.dfs(neighbor, visited)
def bfs(self, start):
visited = set()
queue = deque([start])
while queue:
vertex = queue.popleft()
if vertex not in visited:
print(vertex, end=' ')
visited.add(vertex)
queue.extend([n for n in self.graph[vertex] if n not in visited])
g = Graph()
num_edges = int(input("Enter number of edges: "))
print("Enter edges (u v):")
for _ in range(num_edges):
u, v = map(int, input().split())
g.add_edge(u, v)
start_vertex = int(input("Enter starting vertex for DFS and BFS: "))
print("\nDFS:")
g.dfs(start_vertex)
print("\nBFS:")
g.bfs(start_vertex)