Package org.simplegraph.impl
Class SparseGraph<V>
java.lang.Object
org.simplegraph.impl.SparseGraph<V>
- All Implemented Interfaces:
Graph<V>
Sparse graph implementation.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructorSparseGraph(int size) Create a graph with a starting size.SparseGraph(SparseGraph<V> graph) -
Method Summary
Modifier and TypeMethodDescriptionprotected intprotected boolean_removeEdge(V v1, V v2) booleanAdd an edge between two vertices.protected booleanaddSingleEdge(V v1, V v2, Boolean edge) booleanAdd a vertex to the graph.booleancontainsVertex(V vertex) Check the existence of a vertex in the graph.voidintGet the number of edges in the graph.intcountNeighbors(V vertex) Get the number of neighbors for a vertex.intGet the number of vertices in the graph.booleanexistsEdge(V v1, V v2) Check the existence of an edge that goes from the first vertex to the second.booleanexistsPath(V source, V destination) Does a path exists between source and destination.getNeighbors(V vertex) Get the neighbors of a vertexGet a path between a source and a destinationprotected BooleangetSingleEdge(V v1, V v2) Get all the vertices in the graphbooleanremoveEdge(V v1, V v2) Remove an edge between two vertices.booleanremoveVertex(V vertex) Remove a vertex from the graphMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.simplegraph.Graph
countEdges
-
Field Details
-
DEFAULT_SIZE
protected static final int DEFAULT_SIZE- See Also:
-
edges
-
-
Constructor Details
-
SparseGraph
public SparseGraph()Default constructor -
SparseGraph
public SparseGraph(int size) Create a graph with a starting size.- Parameters:
size- starting size
-
SparseGraph
-
-
Method Details
-
addEdge
Description copied from interface:GraphAdd an edge between two vertices. Add the two vertices in the graph if they don't exists -
addVertex
Add a vertex to the graph.- Parameters:
vertex- the vertex to add- Returns:
- true if the the graph has been modified
-
containsVertex
Check the existence of a vertex in the graph.- Parameters:
vertex- the vertex to check- Returns:
- true if the graph contains vertex
-
countVertices
public int countVertices()Get the number of vertices in the graph.- Returns:
- number of vertices
-
existsPath
Does a path exists between source and destination.- Parameters:
source- source vertexdestination- destination vertex- Returns:
- true if a path exists
-
existsEdge
Check the existence of an edge that goes from the first vertex to the second.- Parameters:
v1- first vertexv2- second vertex- Returns:
- true if an edge from v1 to v2 exists
-
countNeighbors
Get the number of neighbors for a vertex.- Parameters:
vertex- the spefied vertex- Returns:
- number of neighbors, -1 if vertex does not exists
-
getNeighbors
Get the neighbors of a vertex- Parameters:
vertex- the specified vertex- Returns:
- the list of vertices that are neighbors of vertex null if the vertex is not contained in the graph
-
getPath
Get a path between a source and a destination- Parameters:
source- source vertexdestination- destination vertex- Returns:
- a list containing the vertices that compose the path, in order; an empty LinkedList if there is no path, null if the source and the destination are equals or are not contained in the graph
-
removeEdge
Remove an edge between two vertices.- Parameters:
v1- first vertexv2- second vertex- Returns:
- true if the graph has been changed
-
removeVertex
Remove a vertex from the graph- Parameters:
vertex- the vertex to remove- Returns:
- true if the graph has been modified
-
getVertices
Get all the vertices in the graph- Returns:
- a list containing all the graph vertices
-
getSpanningTree
- Specified by:
getSpanningTreein interfaceGraph<V>
-
copy
-
addSingleEdge
-
getSingleEdge
-
_removeEdge
-
_countEdges
protected int _countEdges() -
countEdges
public int countEdges()Get the number of edges in the graph.- Returns:
- number of edges
-