A directed graph is acyclic if it contains no cycles. That is,
starting at any node in the graph, no sequence of edges exists that can be followed
to loop back to that starting node. As a result, directed acyclic graphs do not
contain any self-loops.