package graphs; import java.util.Collection; /** * An undirected graph that supports Kruskal's algorithm. * * Note: although the graph is undirected, its edges are directed. * In particular, this means that an edge AB from {@code outgoingEdgesFrom(A)} * will not be equal to the edge BA from {@code outgoingEdgesFrom(B)}. * * @param The vertex type. * @param The edge type. Must be a subtype of {@link Edge}. */ public interface KruskalGraph> extends Graph { /** Returns an unmodifiable collection of all vertices in the graph. */ Collection allVertices(); /** Returns an unmodifiable collection of all edges in the graph. */ Collection allEdges(); }