Class AsUnweightedGraph<V,​E>

  • Type Parameters:
    V - the graph vertex type
    E - the graph edge type
    All Implemented Interfaces:
    Serializable, Graph<V,​E>

    public class AsUnweightedGraph<V,​E>
    extends GraphDelegator<V,​E>
    implements Serializable, Graph<V,​E>
    Provides an unweighted view on a graph. Algorithms designed for unweighted graphs should also work on weighted graphs. This class emulates an unweighted graph based on a weighted one by returning Graph.DEFAULT_EDGE_WEIGHT for each edge weight. The underlying weighted graph is provided at the constructor. Modifying operations (adding/removing vertexes/edges) are also passed through to the underlying weighted graph. As edge weight, Graph.DEFAULT_EDGE_WEIGHT is used. Setting an edge weight is not supported. The edges are not modified. So, if an edge is asked for, the one from the underlying weighted graph is returned. In case the underlying graph is serializable, this one is serializable, too.
    See Also:
    Serialized Form
    • Constructor Detail

      • AsUnweightedGraph

        public AsUnweightedGraph​(Graph<V,​E> g)
        Constructor for AsUnweightedGraph.
        Parameters:
        g - the backing directed graph over which an undirected view is to be created.
        Throws:
        NullPointerException - if the graph is null
    • Method Detail

      • getEdgeWeight

        public double getEdgeWeight​(E e)
        Description copied from class: GraphDelegator
        Returns the weight assigned to a given edge. Unweighted graphs return 1.0 (as defined by Graph.DEFAULT_EDGE_WEIGHT), allowing weighted-graph algorithms to apply to them when meaningful.
        Specified by:
        getEdgeWeight in interface Graph<V,​E>
        Overrides:
        getEdgeWeight in class GraphDelegator<V,​E>
        Parameters:
        e - edge of interest
        Returns:
        edge weight
      • setEdgeWeight

        public void setEdgeWeight​(E e,
                                  double weight)
        Description copied from class: GraphDelegator
        Assigns a weight to an edge.
        Specified by:
        setEdgeWeight in interface Graph<V,​E>
        Overrides:
        setEdgeWeight in class GraphDelegator<V,​E>
        Parameters:
        e - edge on which to set weight
        weight - new weight for edge
      • getType

        public GraphType getType()
        Description copied from class: GraphDelegator
        Get the graph type. The graph type can be used to query for additional metadata such as whether the graph supports directed or undirected edges, self-loops, multiple (parallel) edges, weights, etc.
        Specified by:
        getType in interface Graph<V,​E>
        Overrides:
        getType in class GraphDelegator<V,​E>
        Returns:
        the graph type