def dfs_recursive(graph, node, visited=None):
if visited is None:
visited = set()
if node not in visited:
print(node)
visited.add(node)
for neighbor in graph[node]:
dfs_recursive(graph, neighbor, visited)
def main():
graph = {}
edges = int(input(“Enter number of edges: “))
for _ in range(edges):
u, v = input(“Enter edge (u v): “).split()
if u not in graph:
graph[u] = []
if v not in graph:
graph[v] = []
graph[u].append(v) # Directed graph
start_node = input(“Enter starting node for DFS: “)
print(“\nDFS Recursive:”)
dfs_recursive(graph, start_node)
if __name__ == “__main__”:
main()
Please follow and like us: