Iterates over the nodes of a graph in Depth First Topological Sort
pattern. The following
is an illustration of the iteration.
Initially all nodes of degree less than two are active
(ready to be visited). As nodes are
visited, a node can become active when all but one of its related nodes have been visited (
degree = counter + 1). When a node becomes active it is placed into the active node queue
(queue of nodes to be visited). The Depth First Topological iterator places nodes into the queue
in Last In First Out
order (a Stack).
To determine when a node is to become active the iterator uses the counter associated with each
node. If these counters are modified by an entity other then the iterator, the iteration may be
affected in undefined ways.