Class OptNode

All Implemented Interfaces:
Serializable, Graphable, Node
Direct Known Subclasses:
OptXYNode

public class OptNode extends OptGraphable implements Node
Optimized implementation of Node. The following optimizations reduce space and improve performance.
  • Edge adjacency list stored as array of predetermined size.
  • Removing support for removing edges from the nodes ajdacency list.
  • The related component iterator iterates over the underlying edge array of the node instread of a newly created collection.
Using an optimized node requires that the degree of the node be known before the node is built.
Author:
Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net
See Also:
  • Constructor Details

    • OptNode

      public OptNode()
      Constructs a new OptimizedNode. This constructor does not build the adjacency array for the node.
    • OptNode

      public OptNode(int degree)
      Constructs a new Optimized Node with a known degree.
      Parameters:
      degree - The degree of the node.
  • Method Details

    • add

      public void add(Edge e)
      Description copied from interface: Node
      Adds an edge to the adjacency list of the node.
      Specified by:
      add in interface Node
      Parameters:
      e - Adjacent edge to add.
      See Also:
    • remove

      public void remove(Edge e)
      Not supported.
      Specified by:
      remove in interface Node
      Parameters:
      e - Adjacent edge to remove.
      See Also:
    • getEdge

      public Edge getEdge(Node other)
      Description copied from interface: Node
      Returns an edge in the adjacency list of the node that is adjacent to another specified node.

      Note: It is possible for two nodes to share multiple edges between them. In this case, getEdges(Node other) can be used to obtain a complete list.
      Specified by:
      getEdge in interface Node
      Parameters:
      other - The other node that the desired edge to return is adjacent to.
      Returns:
      The first edge that is found to be adjacent to the specified node.
      See Also:
    • getEdges

      public List<Edge> getEdges(Node other)
      Description copied from interface: Node
      Returns a collection of edges in the adjacency list of the node that are adjacent to another specified node.
      Specified by:
      getEdges in interface Node
      Parameters:
      other - The other node that the desired edges to return are adjacent to.
      Returns:
      List of all edges that are found to be adjacent to the specified node.
      See Also:
    • getEdgeArray

      public Edge[] getEdgeArray()
      Returns the edge adjacency list of the node as an array.
      Returns:
      An array containing edges adjacent to the node.
    • getEdges

      public List<Edge> getEdges()
      Description copied from interface: Node
      Returns the edge adjacency list of the node.
      Specified by:
      getEdges in interface Node
      Returns:
      A list containing all edges that are adjacent to the node.
      See Also:
    • setDegree

      public void setDegree(int degree)
      Sets the degree of the node. This method build the edge adjacency array for the node.
      Parameters:
      degree - The degree of the node / size of edge adjacency array.
    • getDegree

      public int getDegree()
      Description copied from interface: Node
      Returns the degree of the node. The degree of a node is defined as the number of edges that are adjacent to the node.
      Specified by:
      getDegree in interface Node
      Returns:
      int Degree of node.
      See Also:
    • getRelated

      public Iterator<Node> getRelated()
      This iterator iterates over the underlying edge array of the node.
      Specified by:
      getRelated in interface Graphable
      Returns:
      Iterator An iterator over other components of the graph that are related to the component.
      See Also: