@maarzt introduced a new graph iterator: DepthFirstIteration.
Neither of the to classes DepthFirstIteration and DepthFirstSearch cannot be used to replace this DepthFirstIteration class. The DepthFirstIterator doesn't visit the nodes twice. The second visit is actually needed in the layoutX() method in TrackScheme. The DepthFisrtSearch is based on a recursive function call, which cannot provide the required performance. DepthFisrtSearch will likely cause a StackOverflowException when used in the layoutX method.
Another important feature that neither of the implementations provide is the ability the exclude a subtree from the iteration.
Let's move it in mastodon-graph repo and document the differences between the DF 3 iterators.
@maarzt made some changes in this class to specifically address issues in TrackScheme display.
Now I think that it makes sense to keep it close to TrackScheme.
@maarzt introduced a new graph iterator: DepthFirstIteration.
Neither of the to classes DepthFirstIteration and DepthFirstSearch cannot be used to replace this
DepthFirstIteration
class. TheDepthFirstIterator
doesn't visit the nodes twice. The second visit is actually needed in thelayoutX()
method in TrackScheme. TheDepthFisrtSearch
is based on a recursive function call, which cannot provide the required performance.DepthFisrtSearch
will likely cause a StackOverflowException when used in thelayoutX
method. Another important feature that neither of the implementations provide is the ability the exclude a subtree from the iteration.Let's move it in
mastodon-graph
repo and document the differences between the DF 3 iterators.