com.phoenixst.plexus.traversals

Class PostOrderTraverser

public class PostOrderTraverser extends Object implements Traverser

A post-order depth-first Traverser for a Graph, with no cycle detection. The last node returned is the start node, and no Edge is traversed to reach it. All of the caveats concerning the ordering of the operations hasNext(), next(), and remove() detailed by the Traverser class documentation apply here.

Since: 1.0

Version: $Revision: 1.6 $

Author: Ray A. Conner

Constructor Summary
PostOrderTraverser(Object startNode, Graph graph, Predicate traverserPredicate)
Creates a new PostOrderTraverser.
PostOrderTraverser(Object startNode, OrientedForest forest)
Creates a new PostOrderTraverser, which depth-first traverses the descendants of the specified startNode.
PostOrderTraverser(Object startNode, Transformer traverserFactory)
Creates a new PostOrderTraverser.
PostOrderTraverser(Object startNode, Graph graph, Transformer traverserFactory)
Creates a new PostOrderTraverser.
Method Summary
Graph.EdgegetEdge()
booleanhasNext()
Objectnext()
voidremove()
voidremoveEdge()

Constructor Detail

PostOrderTraverser

public PostOrderTraverser(Object startNode, Graph graph, Predicate traverserPredicate)
Creates a new PostOrderTraverser.

PostOrderTraverser

public PostOrderTraverser(Object startNode, OrientedForest forest)
Creates a new PostOrderTraverser, which depth-first traverses the descendants of the specified startNode. The specified startNode cannot be removed by PostOrderTraverser when using this constructor.

PostOrderTraverser

public PostOrderTraverser(Object startNode, Transformer traverserFactory)
Creates a new PostOrderTraverser. The specified startNode cannot be removed by PostOrderTraverser when using this constructor.

PostOrderTraverser

public PostOrderTraverser(Object startNode, Graph graph, Transformer traverserFactory)
Creates a new PostOrderTraverser. If the graph argument is null, the specified startNode cannot be removed by PostOrderTraverser.

Method Detail

getEdge

public Graph.Edge getEdge()

hasNext

public boolean hasNext()

next

public Object next()

remove

public void remove()

removeEdge

public void removeEdge()
See the Plexus project home, hosted by SourceForge.
Copyright B) 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.