Package classycle.graph
Class LongestWalkProcessor
java.lang.Object
classycle.graph.GraphProcessor
classycle.graph.LongestWalkProcessor
Calculates for each vertex the longest walk. This processor assumes
that the graph has no cycles.
- Author:
- Franz-Josef Elmer
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
finishProcessing
(Vertex[] graph) Finishes processing by sorting the result in accordance with the walk length.protected void
initializeProcessing
(Vertex[] graph) Does nothing.protected void
processAfter
(Vertex vertex) Deactivate the specified vertex.protected void
processArc
(Vertex tail, Vertex head) Processes arc from tail to head.protected void
processBefore
(Vertex vertex) Resets the specified vertex.Methods inherited from class classycle.graph.GraphProcessor
deepSearchFirst, process
-
Constructor Details
-
LongestWalkProcessor
public LongestWalkProcessor()
-
-
Method Details
-
initializeProcessing
Does nothing.- Specified by:
initializeProcessing
in classGraphProcessor
-
processBefore
Resets the specified vertex.- Specified by:
processBefore
in classGraphProcessor
- Parameters:
vertex
- Vertex to be processed.- Throws:
IllegalArgumentException
- if vertex is not an instance ofStrongComponent
.
-
processArc
Processes arc from tail to head. Calculates the longest walk of tail.- Specified by:
processArc
in classGraphProcessor
- Parameters:
tail
- Tail vertex of the arc.head
- Head vertex of the arc.- Throws:
IllegalArgumentException
- if both vertices are not instances ofStrongComponent
or if head is visited and active which indicates a cycle in the graph.
-
processAfter
Deactivate the specified vertex.- Specified by:
processAfter
in classGraphProcessor
- Parameters:
vertex
- Vertex to be processed.- Throws:
IllegalArgumentException
- if vertex is not an instance ofStrongComponent
.
-
finishProcessing
Finishes processing by sorting the result in accordance with the walk length.- Specified by:
finishProcessing
in classGraphProcessor
-