Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## edu.uci.ics.jung.graph.impl
Class LeanSparseVertex

    java.lang.Object
      edu.uci.ics.jung.utils.UserDataDelegate
          edu.uci.ics.jung.graph.impl.AbstractElement
              edu.uci.ics.jung.graph.impl.AbstractArchetypeVertex
                  edu.uci.ics.jung.graph.impl.AbstractSparseVertex
                      edu.uci.ics.jung.graph.impl.LeanSparseVertex

All Implemented Interfaces:
  ArchetypeVertex, Cloneable, Element, UserDataContainer, Vertex

public class LeanSparseVertex
extends AbstractSparseVertex

This fully functional class is provided as a different sort of way to think about the creation and use of Vertices, and a reminder that the user is always welcome to create their own vertices. While most vertex classes keep a table from neighboring vertex to edge, this one keeps a linked list. This reduces the memory footprint, but makes `findEdge()` (as well as most other methods) require time proportional to the vertex's degree.

Author:
  Joshua O'Madadhain

Nested Class Summary

Nested classes inherited from class edu.uci.ics.jung.utils.UserDataContainer
`UserDataContainer.CopyAction`

Field Summary
`protected List` | `incident_edges`

Fields inherited from class edu.uci.ics.jung.graph.impl.AbstractElement
`id, m_Graph`

Fields inherited from class edu.uci.ics.jung.utils.UserDataDelegate
`factory, udc_delegate`

Constructor Summary
`LeanSparseVertex()`

Method Summary
`protected void` | `addNeighbor_internal(Edge e, Vertex v)` Adds the specified edge `e` and vertex `v` to the internal data structures of this vertex.
`Set` | `findEdgeSet(Vertex w)` Returns the set of all edges that connect this vertex with the specified vertex `v`.
`protected Collection` | `getEdges_internal()` Returns a set containing all the incident edges of this vertex.
`Set` | `getInEdges()` Returns the set of incoming edges of this vertex.
`protected Collection` | `getNeighbors_internal()` Returns a set containing all neighbors of this vertex.
`Set` | `getOutEdges()` Returns the set of outgoing edges of this vertex.
`Set` | `getPredecessors()` Returns the set of predecessors of this vertex.
`Set` | `getSuccessors()` Returns the set of successors of this vertex.
`int` | `inDegree()` Returns the number of incoming edges that are incident to this vertex.
`protected void` | `initialize()` Initializes all the data structures for this element.
`boolean` | `isDest(Edge e)` Returns `true` if this vertex is a destination of the specified edge `e`, and `false` otherwise.
`boolean` | `isPredecessorOf(Vertex v)` Returns `true` if this vertex is a predecessor of the specified vertex `v`, and `false` otherwise.
`boolean` | `isSource(Edge e)` Returns `true` if this vertex is a source of the specified edge `e`, and `false` otherwise.
`boolean` | `isSuccessorOf(Vertex v)` Returns `true` if this vertex is a successor of the specified vertex `v`, and `false` otherwise.
`int` | `numPredecessors()` Returns the number of predecessors of this vertex.
`int` | `numSuccessors()` Returns the number of successors of this vertex.
`int` | `outDegree()` Returns the number of outgoing edges that are incident to this vertex.
`protected void` | `removeNeighbor_internal(Edge e, Vertex v)` Removes the specified edge `e` and vertex `v` from the internal data structures of this vertex.

Methods inherited from class edu.uci.ics.jung.graph.impl.AbstractSparseVertex
`copy, findEdge, findEdge, findEdgeSet, toString`

Methods inherited from class edu.uci.ics.jung.graph.impl.AbstractArchetypeVertex
`degree, equals, getEqualVertex, getEquivalentVertex, getIncidentEdges, getIncidentElements, getNeighbors, isIncident, isNeighborOf, numNeighbors`

Methods inherited from class edu.uci.ics.jung.graph.impl.AbstractElement
`addGraph_internal, getGraph, hashCode, removeGraph_internal`

Methods inherited from class edu.uci.ics.jung.utils.UserDataDelegate
`addUserDatum, clone, containsUserDatumKey, getUserDatum, getUserDatumCopyAction, getUserDatumKeyIterator, importUserData, removeUserDatum, setUserDataFactory, setUserDatum`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface edu.uci.ics.jung.graph.ArchetypeVertex
`degree, getEqualVertex, getEquivalentVertex, getIncidentEdges, getNeighbors, isIncident, isNeighborOf, numNeighbors`

Methods inherited from interface edu.uci.ics.jung.graph.Element
`getGraph, getIncidentElements`

Methods inherited from interface edu.uci.ics.jung.utils.UserDataContainer
`addUserDatum, clone, containsUserDatumKey, getUserDatum, getUserDatumCopyAction, getUserDatumKeyIterator, importUserData, removeUserDatum, setUserDatum`

Field Detail

### incident_edges

    protected List incident_edges

Constructor Detail

### LeanSparseVertex

    public LeanSparseVertex()

Method Detail

### initialize

    protected void initialize()

  Description copied from class: `AbstractElement`
  Initializes all the data structures for this element. (This is used on cloned elements, since `clone()` copies some information that should not be in the new element.)

  Overrides:
    `initialize` in class `AbstractElement`

### getNeighbors_internal

    protected Collection getNeighbors_internal()

  Description copied from class: `AbstractArchetypeVertex`
  Returns a set containing all neighbors of this vertex. This is an internal method which is not intended for users.

  Specified by:
    `getNeighbors_internal` in class `AbstractArchetypeVertex`
  See Also:
    `AbstractArchetypeVertex.getNeighbors_internal()`

### getEdges_internal

    protected Collection getEdges_internal()

  Description copied from class: `AbstractArchetypeVertex`
  Returns a set containing all the incident edges of this vertex. This is an internal method which is not intended for users.

  Specified by:
    `getEdges_internal` in class `AbstractArchetypeVertex`
  See Also:
    `AbstractArchetypeVertex.getEdges_internal()`

### addNeighbor_internal

    protected void addNeighbor_internal(Edge e,
                                        Vertex v)

  Description copied from class: `AbstractSparseVertex`
  Adds the specified edge `e` and vertex `v` to the internal data structures of this vertex.

  Specified by:
    `addNeighbor_internal` in class `AbstractSparseVertex`
  Parameters:
    `e` - the new incident edge of this vertex
    `v` - the new neighbor of this vertex
  See Also:
    `AbstractSparseVertex.addNeighbor_internal(edu.uci.ics.jung.graph.Edge, edu.uci.ics.jung.graph.Vertex)`

### removeNeighbor_internal

    protected void removeNeighbor_internal(Edge e,
                                           Vertex v)

  Description copied from class: `AbstractSparseVertex`
  Removes the specified edge `e` and vertex `v` from the internal data structures of this vertex.

  Specified by:
    `removeNeighbor_internal` in class `AbstractSparseVertex`
  Parameters:
    `e` - the incident edge of this vertex which is being removed
    `v` - the neighbor of this vertex which is being removed
  See Also:
    `AbstractSparseVertex.removeNeighbor_internal(edu.uci.ics.jung.graph.Edge, edu.uci.ics.jung.graph.Vertex)`

### findEdgeSet

    public Set findEdgeSet(Vertex w)

  Description copied from interface: `Vertex`
  Returns the set of all edges that connect this vertex with the specified vertex `v`. Each edge in this set will be either a directed outgoing edge from this vertex to `v`, or an undirected edge connecting this vertex to `v`. `findEdge(v)` may be used to return a single (arbitrary) element of this set. If `v` is not connected to this vertex, returns an empty `Set`.

  Specified by:
    `findEdgeSet` in interface `Vertex`
  Overrides:
    `findEdgeSet` in class `AbstractSparseVertex`
  See Also:
    `Vertex.findEdgeSet(Vertex)`

### getPredecessors

    public Set getPredecessors()

  Description copied from interface: `Vertex`
  Returns the set of predecessors of this vertex. A vertex `v` is a predecessor of this vertex if and only if `v.isPredecessorOf(this)` returns `true`. Each element of the set returned should implement `Vertex`.

  Returns:
    all predecessors of this vertex
  See Also:
    `Vertex.getPredecessors()`

### getSuccessors

    public Set getSuccessors()

  Description copied from interface: `Vertex`
  Returns the set of successors of this vertex. A vertex `v` is a successor of this vertex if and only if `v.isSuccessorOf(this)` returns `true`. Each element of the set returned should implement `Vertex`.

  Returns:
    all successors of this vertex
  See Also:
    `Vertex.getSuccessors()`

### getInEdges

    public Set getInEdges()

  Description copied from interface: `Vertex`
  Returns the set of incoming edges of this vertex. An edge `e` is an incoming edge of this vertex if and only if `this.isDest(e)` returns `true`. Each element of the set returned should implement `Edge`.

  Returns:
    all edges whose destination is this vertex
  See Also:
    `Vertex.getInEdges()`

### getOutEdges

    public Set getOutEdges()

  Description copied from interface: `Vertex`
  Returns the set of outgoing edges of this vertex. An edge `e` is an outgoing edge of this vertex if and only if `this.isSource(e)` returns `true`. Each element of the set returned should implement `Edge`.

  Returns:
    all edges whose source is this vertex
  See Also:
    `Vertex.getOutEdges()`

### inDegree

    public int inDegree()

  Description copied from interface: `Vertex`
  Returns the number of incoming edges that are incident to this vertex.

  Returns:
    the number of incoming edges of this vertex
  See Also:
    `Vertex.inDegree()`

### outDegree

    public int outDegree()

  Description copied from interface: `Vertex`
  Returns the number of outgoing edges that are incident to this vertex.

  Returns:
    the number of outgoing edges of this vertex
  See Also:
    `Vertex.outDegree()`

### numPredecessors

    public int numPredecessors()

  Description copied from interface: `Vertex`
  Returns the number of predecessors of this vertex.

  See Also:
    `Vertex.numPredecessors()`

### numSuccessors

    public int numSuccessors()

  Description copied from interface: `Vertex`
  Returns the number of successors of this vertex.

  See Also:
    `Vertex.numSuccessors()`

### isSuccessorOf

    public boolean isSuccessorOf(Vertex v)

  Description copied from interface: `Vertex`
  Returns `true` if this vertex is a successor of the specified vertex `v`, and `false` otherwise. This vertex is a successor of `v` if and only if there exists an edge `e` such that `v.isSource(e) == true` and `this.isDest(e) == true`. The behavior of this method is undefined if `v` is not an element of this vertex's graph.

  See Also:
    `Vertex.isSuccessorOf(edu.uci.ics.jung.graph.Vertex)`

### isPredecessorOf

    public boolean isPredecessorOf(Vertex v)

  Description copied from interface: `Vertex`
  Returns `true` if this vertex is a predecessor of the specified vertex `v`, and `false` otherwise. This vertex is a predecessor of `v` if and only if there exists an edge `e` such that `this.isSource(e) == true` and `v.isDest(e) == true`. The behavior of this method is undefined if `v` is not an element of this vertex's graph.

  See Also:
    `Vertex.isPredecessorOf(edu.uci.ics.jung.graph.Vertex)`

### isSource

    public boolean isSource(Edge e)

  Description copied from interface: `Vertex`
  Returns `true` if this vertex is a source of the specified edge `e`, and `false` otherwise. A vertex `v` is a source of `e` if `e` is an outgoing edge of `v`. The behavior of this method is undefined if `e` is not an element of this vertex's graph.

  See Also:
    `Vertex.isSource(edu.uci.ics.jung.graph.Edge)`

### isDest

    public boolean isDest(Edge e)

  Description copied from interface: `Vertex`
  Returns `true` if this vertex is a destination of the specified edge `e`, and `false` otherwise. A vertex `v` is a destination of `e` if `e` is an incoming edge of `v`. The behavior of this method is undefined if `e` is not an element of this vertex's graph.

  See Also:
    `Vertex.isDest(edu.uci.ics.jung.graph.Edge)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD