You can use a graph/map data structure with nodes being tasks and the paths being the dependencies. If from any node you can get back to the starting node, you will have circular dependencies (some...