def dfs(node, graph, visited, stack):
visited.add(node)
stack.add(node)
for neighbor in graph[node]:
if neighbor not in visited :
if dfs(neighbor, graph, visited, stack):
return True
elif neighbor in stack:
return True
stack.remove(node)
return False
graph = {
'A': ['B', 'C', 'D'],
'B': ['E'],
'C': ['E'],
'D': [],
'E': []
}
visited=set()
stack=set()
for node in graph:
if node not in visited:
if dfs(node, graph, visited, stack): # If cycle is detected
print("Cycle Detected")
break
else:
print("No Cycle Detected")