L
- type of vertex labels in this graph, must be immutablepublic interface Graph<L>
L
when compared
using the equals
method.
Edges are directed and have a positive weight of type int
.
PS2 instructions: this is a required ADT interface. You MUST NOT change the specifications or add additional methods.
Modifier and Type | Method and Description |
---|---|
boolean |
add(L vertex)
Add a vertex to this graph.
|
static <L> Graph<L> |
empty()
Create an empty graph.
|
boolean |
remove(L vertex)
Remove a vertex from this graph; any edges to or from the vertex are
also removed.
|
int |
set(L source,
L target,
int weight)
Add, change, or remove a weighted directed edge in this graph.
|
Map<L,Integer> |
sources(L target)
Get the source vertices with directed edges to a target vertex and the
weights of those edges.
|
Map<L,Integer> |
targets(L source)
Get the target vertices with directed edges from a source vertex and the
weights of those edges.
|
Set<L> |
vertices()
Get all the vertices in this graph.
|
static <L> Graph<L> empty()
L
- type of vertex labels in the graph, must be immutableboolean add(L vertex)
vertex
- label for the new vertexint set(L source, L target, int weight)
source
- label of the source vertextarget
- label of the target vertexweight
- nonnegative weight of the edgeboolean remove(L vertex)
vertex
- label of the vertex to removeSet<L> vertices()
Map<L,Integer> sources(L target)
target
- a labelMap<L,Integer> targets(L source)
source
- a label