depthFirst() order: A B C C E E B C C A breadthFirst() order: A B C C E preOrder() order: A B C E C preOrderDistinct() order: A B C D F E postOrder() order: C E B C A preOrderDistinct() order: F D C E B A depthFirstDistinct() order: A B C D F F D C E E B A depthFirstSteps() order: DfsStep[A, 0, true] DfsStep[B, 1, true] DfsStep[C, 2, true] DfsStep[C, 2, false] DfsStep[E, 2, true] DfsStep[E, 2, false] DfsStep[B, 1, false] DfsStep[C, 1, true] DfsStep[C, 1, false] DfsStep[A, 0, false] depthFirstSteps() (with prune) order: DfsStep[A, 0, true] DfsStep[B, 1, true] --pruned DfsStep[C, 1, true] DfsStep[C, 1, false] DfsStep[A, 0, false] depthFirstDistinctSteps() order: DfsStep[A, 0, true] DfsStep[B, 1, true] DfsStep[C, 2, true] DfsStep[D, 3, true] DfsStep[F, 4, true] DfsStep[F, 4, false] DfsStep[D, 3, false] DfsStep[C, 2, false] DfsStep[E, 2, true] DfsStep[E, 2, false] DfsStep[B, 1, false] DfsStep[A, 0, false] depthFirstDistinct() (with marker func) order: A Ba C D F F D C E E Ba A Depth-first order with cycle: A B A B A B A B A B ... breadthFirst() order distinct: A B C D E F breadhtFirstSteps() order: TraversalStep[A, 0] TraversalStep[B, 1] TraversalStep[C, 1] TraversalStep[C, 2] TraversalStep[E, 2] breadhtFirstDistinctSteps() order: TraversalStep[A, 0] TraversalStep[B, 1] TraversalStep[C, 1] TraversalStep[D, 1] TraversalStep[E, 2] TraversalStep[F, 2] breadthFirstSteps() (with prune) order: TraversalStep[A, 0] TraversalStep[B, 1] --pruned TraversalStep[C, 1] Breadth-first order with cycle: A B C D A C E B D A B F B C D B D A C E ... priority() alphabetic priority order: A C D C E priority() alphabetic priority order: A C D E prioritySteps() alphabetic priority order: TraversalStep[A, 0] TraversalStep[C, 1] TraversalStep[D, 1] TraversalStep[C, 2] TraversalStep[E, 2] prioritySteps() (with prune) order: TraversalStep[A, 0] TraversalStep[B, 1] --pruned TraversalStep[D, 1] TraversalStep[C, 2] TraversalStep[E, 2]