Interface IPath
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description IEdgeIteredgeIter()Get anEdgeIterthat iterate over the edges of the path.IntListedges()Get the edges forming this path.static IPathfindPath(IntGraph g, int source, int target)Find a valid path from \(u\) to \(v\).default booleanisCycle()Check whether this path form a cycle.static booleanisPath(IntGraph g, int source, int target, IntList edges)Check whether the given edge list is a valid path in the given graph.static IPathnewInstance(IntGraph g, int source, int target, IntList edges)Create a new path from an edge list, a source and a target vertices.static IntSetreachableVertices(IntGraph g, int source)Find all the vertices reachable from a given source vertex.static IntSetreachableVertices(IntGraph g, IntIterator sources)Find all the vertices reachable from a set of given source vertices.default Integersource()Deprecated.intsourceInt()Get the source vertex of the path.default Integertarget()Deprecated.inttargetInt()Get the target vertex of the path.IntListvertices()Get the vertices forming this path.
-
-
-
Method Detail
-
sourceInt
int sourceInt()
Get the source vertex of the path.If the returned vertex is the same as
targetInt(), the represented path is actually a cycle.- Returns:
- the source vertex of the path.
-
source
@Deprecated default Integer source()
Deprecated.Description copied from interface:PathGet the source vertex of the path.If the returned vertex is the same as
Path.target(), the represented path is actually a cycle.
-
targetInt
int targetInt()
Get the target vertex of the path.If the returned vertex is the same as
sourceInt(), the represented path is actually a cycle.- Returns:
- the target vertex of the path.
-
target
@Deprecated default Integer target()
Deprecated.Description copied from interface:PathGet the target vertex of the path.If the returned vertex is the same as
Path.source(), the represented path is actually a cycle.
-
isCycle
default boolean isCycle()
Description copied from interface:PathCheck whether this path form a cycle.A cycle is a path which start and ends at the same vertex.
-
edgeIter
IEdgeIter edgeIter()
Description copied from interface:PathGet anEdgeIterthat iterate over the edges of the path.
-
edges
IntList edges()
Description copied from interface:PathGet the edges forming this path.The path is defined as a list of edges \(e_1,e_2,\ldots\), where each target vertex of an edge \(e_i\) is the source vertex of the next edge \(e_{i+1}\).
-
vertices
IntList vertices()
Description copied from interface:PathGet the vertices forming this path.The path is defined as a list of edges \(e_1,e_2,\ldots\), where each target vertex of an edge \(e_i\) is the source vertex of the next edge \(e_{i+1}\). The list of vertices of this path is the vertices visited by this path, ordered by their visit order. If this path form a cycle, the vertices list size is the same as the edge list, otherwise it is greater by one.
-
newInstance
static IPath newInstance(IntGraph g, int source, int target, IntList edges)
Create a new path from an edge list, a source and a target vertices.Note that this function does not check whether the given edge list is a valid path in the given graph. To check for validity, use
isPath(IntGraph, int, int, IntList).- Parameters:
g- the graphsource- a source vertextarget- a target vertexedges- a list of edges that form a path from thesourceto thetargetvertices in the- Returns:
- a new path
-
isPath
static boolean isPath(IntGraph g, int source, int target, IntList edges)
Check whether the given edge list is a valid path in the given graph.A list of edges is a valid path in the graph if it is a list of edges \(e_1,e_2,\ldots\) where each target vertex of an edge \(e_i\) is the source vertex of the next edge \(e_{i+1}\). If the graph is undirected the definition of a 'source' and 'target' are interchangeable, and each pair of consecutive edges simply share an endpoint. In addition, the edge list must start with the
sourcevertex and end with thetargetvertex.- Parameters:
g- a graphsource- a source vertextarget- a target vertexedges- a list of edges that form a path from thesourceto thetargetvertices in the graph.- Returns:
trueif the given edge list is a valid path in the given graph, elsefalse
-
findPath
static IPath findPath(IntGraph g, int source, int target)
Find a valid path from \(u\) to \(v\).This function uses BFS, which will result in the shortest path in the number of edges.
- Parameters:
g- a graphsource- source vertextarget- target vertex- Returns:
- a path from \(u\) to \(v\), or
nullif no such path was found
-
reachableVertices
static IntSet reachableVertices(IntGraph g, int source)
Find all the vertices reachable from a given source vertex.- Parameters:
g- a graphsource- a source vertex- Returns:
- a set of all the vertices reachable from the given source vertex
-
reachableVertices
static IntSet reachableVertices(IntGraph g, IntIterator sources)
Find all the vertices reachable from a set of given source vertices.- Parameters:
g- a graphsources- a set of source vertices- Returns:
- a set of all the vertices reachable from the given source vertices
-
-