From Definition to Abstraction
A graph $G = (V, E)$ consists of a nonempty set $V$ of vertices (or nodes) and a collection $E$ of edges (or arcs).
Open the starter code and look at the Graph.java
, which defines the Graph interface:
/**
* Graph ADT.
*
* @param <V> Vertex element type.
* @param <E> Edge element type.
*/
public interface Graph<V, E> {
// Operations not shown
}
The Graph interface declaration looks a lot like the Mathematical definition of Graph, but be careful, as V
and E
here are not collection of vertices/edges. Instead, they are generics, placeholders for the datatype of what will be stored in a vertex or an edge.