Пример #1
0
  /**
   * @param vertexNumber the number which identifies the vertex v in this order.
   * @return the identifying numbers of all vertices which are connected to v by an edge incoming to
   *     v.
   */
  public int[] getInEdges(int vertexNumber) {
    if (cacheEdges && (incomingEdges[vertexNumber] != null)) {
      return incomingEdges[vertexNumber];
    }

    V v = getVertex(vertexNumber);
    Set<E> edgeSet;

    if (graph instanceof DirectedGraph<?, ?>) {
      edgeSet = ((DirectedGraph<V, E>) graph).incomingEdgesOf(v);
    } else {
      edgeSet = graph.edgesOf(v);
    }

    int[] vertexArray = new int[edgeSet.size()];
    int i = 0;

    for (E edge : edgeSet) {
      V source = graph.getEdgeSource(edge), target = graph.getEdgeTarget(edge);
      vertexArray[i++] = mapVertexToOrder.get(source.equals(v) ? target : source);
    }

    if (cacheEdges) {
      incomingEdges[vertexNumber] = vertexArray;
    }

    return vertexArray;
  }
Пример #2
0
 Set<E> edgesOf(V vertex) {
   return graph.edgesOf(vertex);
 }
Пример #3
0
 @Override
 public int compare(V2 v1, V2 v2) {
   return graph.edgesOf(v1).size() - graph.edgesOf(v2).size();
 }
Пример #4
0
 /** @see CrossComponentIterator.Specifics#edgesOf(Object) */
 public Set<EE> edgesOf(VV vertex) {
   return graph.edgesOf(vertex);
 }