OneCompiler

mgw B_D

124
 
 
graph = { 
    'S': ['A', 'B'], 'A': ['C', 'D'], 'B': ['G','H'], 
    'C': ['E','F'], 'D': [], 
    'G': ['I'], 
    'H': [], 
    'E': ['K'], 
    'F': [], 
    'I': [], 
    'K': [] 
} 

def bfs(visited, graph, node): 
    visited.append(node) 
    queue = [node] 

    while queue: 
        P = queue.pop(0) 
        print(P, end=" ") 
        for neighbour in graph[P]: 
            if neighbour not in visited: 
                visited.append(neighbour) 
                queue.append(neighbour) 

def dfs(visited, graph, node): 
    if node not in visited: 
        print(node, end=" ") 
        visited.add(node) 
        for neighbour in graph[node]: 
            dfs(visited, graph, neighbour) 

print("Breadth-first search:") 
bfs([], graph, 'S') 

print("\nDepth-first search:") 
dfs(set(), graph, 'S')