graph = {'A' : ['E','D','F','B'], 'B' : ['A','G','H','C'], 'C' : ['B'], 'D' : ['A'], 'E' : ['A'], 'F' : ['A'], 'G' : ['B'], 'H' : ['B'] } def BFS(graph,node): visited=[] queue=[] visited.append(node) queue.append(node) while queue: node=queue.pop(0) print(node) for i in graph[node]: if i not in visited: visited.append(i) queue.append(i) def DFS(graph,node): visited=[] stack=[] visited.append(node) stack.append(node) while stack: node=stack.pop() print(node) for i in graph[node]: if i not in visited: visited.append(i) stack.append(i) print('BFS') BFS(graph,'A') print('DFS') DFS(graph,'A')