V
 the graph vertex typeE
 the graph edge typepublic class GraphWalk<V,E> extends Object implements GraphPath<V,E>
v0, e0, v1, e1, v2,....vk1, ek1, vk
, such that for 1<=i<=k<
, the edge
e_i
has endpoints v_(i1)
and v_i
. The class makes no assumptions with
respect to the shape of the walk: edges may be repeated, and the start and end point of the walk
may be different.
See http://mathworld.wolfram.com/Walk.html
GraphWalk is the default implementation of GraphPath
.
Two special cases exist:
This class is implemented as a lightweight data structure; this class does not verify whether the sequence of edges or the sequence of vertices provided during construction forms an actual walk. It is the responsibility of the invoking class to provide correct input data.
Modifier and Type  Field and Description 

protected List<E> 
edgeList 
protected V 
endVertex 
protected Graph<V,E> 
graph 
protected V 
startVertex 
protected List<V> 
vertexList 
protected double 
weight 
Constructor and Description 

GraphWalk(Graph<V,E> graph,
List<V> vertexList,
double weight)
Creates a walk defined by a sequence of vertices.

GraphWalk(Graph<V,E> graph,
V startVertex,
V endVertex,
List<E> edgeList,
double weight)
Creates a walk defined by a sequence of edges.

GraphWalk(Graph<V,E> graph,
V startVertex,
V endVertex,
List<V> vertexList,
List<E> edgeList,
double weight)
Creates a walk defined by both a sequence of edges and a sequence of vertices.

Modifier and Type  Method and Description 

GraphWalk<V,E> 
concat(GraphWalk<V,E> extension,
java.util.function.Function<GraphWalk<V,E>,Double> walkWeightCalculator)
Concatenates the specified GraphWalk to the end of this GraphWalk.

static <V,E> GraphWalk<V,E> 
emptyWalk(Graph<V,E> graph)
Convenience method which creates an empty walk.

boolean 
equals(Object o) 
List<E> 
getEdgeList()
Returns the edges making up the path.

V 
getEndVertex()
Returns the end vertex in the path.

Graph<V,E> 
getGraph()
Returns the graph over which this path is defined.

int 
getLength()
Returns the length of the path, measured in the number of edges.

V 
getStartVertex()
Returns the start vertex in the path.

List<V> 
getVertexList()
Returns the path as a sequence of vertices.

double 
getWeight()
Returns the weight assigned to the path.

int 
hashCode() 
boolean 
isEmpty()
Returns true if the path is an empty path, that is, a path with startVertex=endVertex=null
and with an empty vertex and edge list.

GraphWalk<V,E> 
reverse()
Reverses the direction of the walk.

GraphWalk<V,E> 
reverse(java.util.function.Function<GraphWalk<V,E>,Double> walkWeightCalculator)
Reverses the direction of the walk.

void 
setWeight(double weight)
Updates the weight of this walk

static <V,E> GraphWalk<V,E> 
singletonWalk(Graph<V,E> graph,
V v)
Convenience method which creates a walk consisting of a single vertex with weight 0.0.

static <V,E> GraphWalk<V,E> 
singletonWalk(Graph<V,E> graph,
V v,
double weight)
Convenience method which creates a walk consisting of a single vertex.

String 
toString() 
void 
verify()
Convenience method which verifies whether the given path is feasible wrt the input graph and
forms an actual path.

protected V startVertex
protected V endVertex
protected double weight
public GraphWalk(Graph<V,E> graph, V startVertex, V endVertex, List<E> edgeList, double weight)
graph
 the graphstartVertex
 the starting vertexendVertex
 the last vertex of the pathedgeList
 the list of edges of the pathweight
 the total weight of the pathpublic GraphWalk(Graph<V,E> graph, List<V> vertexList, double weight)
graph
 the graphvertexList
 the list of vertices of the pathweight
 the total weight of the pathpublic GraphWalk(Graph<V,E> graph, V startVertex, V endVertex, List<V> vertexList, List<E> edgeList, double weight)
graph
 the graphstartVertex
 the starting vertexendVertex
 the last vertex of the pathvertexList
 the list of vertices of the pathedgeList
 the list of edges of the pathweight
 the total weight of the pathpublic Graph<V,E> getGraph()
GraphPath
public V getStartVertex()
GraphPath
getStartVertex
in interface GraphPath<V,E>
public V getEndVertex()
GraphPath
getEndVertex
in interface GraphPath<V,E>
public List<E> getEdgeList()
GraphPath
GraphPath.getVertexList()
.
Whether or not the returned edge list is modifiable depends on the path implementation.
getEdgeList
in interface GraphPath<V,E>
public List<V> getVertexList()
GraphPath
getVertexList
in interface GraphPath<V,E>
public double getWeight()
GraphPath
public void setWeight(double weight)
weight
 weight of the walkpublic int getLength()
GraphPath
public GraphWalk<V,E> reverse()
org.jgrapht.graph.InvalidGraphWalkException
 if the path is invalidpublic GraphWalk<V,E> reverse(java.util.function.Function<GraphWalk<V,E>,Double> walkWeightCalculator)
walkWeightCalculator
 Function used to calculate the weight of the reversed GraphWalkorg.jgrapht.graph.InvalidGraphWalkException
 if the path is invalidpublic GraphWalk<V,E> concat(GraphWalk<V,E> extension, java.util.function.Function<GraphWalk<V,E>,Double> walkWeightCalculator)
extension
 GraphPath used for the concatenation.walkWeightCalculator
 Function used to calculate the weight of the GraphWalk obtained
after the concatenation.public boolean isEmpty()
public void verify()
org.jgrapht.graph.InvalidGraphWalkException
 if the path is invalidpublic static <V,E> GraphWalk<V,E> emptyWalk(Graph<V,E> graph)
V
 vertex typeE
 edge typegraph
 input graphpublic static <V,E> GraphWalk<V,E> singletonWalk(Graph<V,E> graph, V v)
V
 vertex typeE
 edge typegraph
 input graphv
 single vertexpublic static <V,E> GraphWalk<V,E> singletonWalk(Graph<V,E> graph, V v, double weight)
V
 vertex typeE
 edge typegraph
 input graphv
 single vertexweight
 weight of the pathCopyright © 2017. All rights reserved.