Posts

       PRACTICAL 1: DFS   def dfsRec(adj, visited, s, res): visited[s]=True res.append(s) for i in range(len(adj)): if adj[s][i]==1 and not visited[i]: dfsRec(adj, visited, i, res)   def DFS(adj): visited=[False]*len(adj) res=[] dfsRec(adj, visited, 0, res) return res   def add_edge(adj, s, t): adj[s][t]=1 adj[t][s]=1     V=5 adj=[[0]*V for _ in range(V)] edges=[(1,2),(1,0),(2,0),(2,3),(2,4)] for s, t in edges: add_edge(adj, s, t) res=DFS(adj) print(" ".join(map(str, res))) Practical 2: BFS     def bfs(adj): v=len(adj) res=[] s=0 from collections import deque q=deque() visited=[False]*v visited[s]=True q.append(s) while q: curr=q.popleft() res.append(curr) for x in adj[curr]: if not visited[x]: visited[x]=True q.append(x) return res if name ==" main ": adj=[[1,2],[0,2,3],[0,4],[1,4],[2,3]] ans=bfs(adj) for i in ans: print(i, en...