/** * Returns a view of {@code graph} with the direction (if any) of every edge reversed. All other * properties remain intact, and further updates to {@code graph} will be reflected in the view. */ public static <N> Graph<N> transpose(Graph<N> graph) { if (!graph.isDirected()) { return graph; // the transpose of an undirected graph is an identical graph } if (graph instanceof TransposedGraph) { return ((TransposedGraph<N>) graph).graph; } return new TransposedGraph<N>(graph); }
@Override public Set<N> predecessors(N node) { return delegate().successors(node); // transpose }
@Override public int inDegree(N node) { return delegate().outDegree(node); // transpose }
@Override public Set<N> predecessors(N node) { return delegate().successors(node); // transpose }
@Override public boolean hasEdgeConnecting(N nodeU, N nodeV) { return delegate().hasEdgeConnecting(nodeV, nodeU); // transpose } }
@Override public int outDegree(N node) { return delegate().inDegree(node); // transpose }
@Override public Set<N> successors(N node) { return delegate().predecessors(node); // transpose }
@Override public int outDegree(N node) { return delegate().inDegree(node); // transpose }
/** * Returns a view of {@code graph} with the direction (if any) of every edge reversed. All other * properties remain intact, and further updates to {@code graph} will be reflected in the view. */ public static <N> Graph<N> transpose(Graph<N> graph) { if (!graph.isDirected()) { return graph; // the transpose of an undirected graph is an identical graph } if (graph instanceof TransposedGraph) { return ((TransposedGraph<N>) graph).graph; } return new TransposedGraph<N>(graph); }
@Override public Set<N> successors(N node) { return delegate().predecessors(node); // transpose }
@Override public boolean hasEdgeConnecting(N nodeU, N nodeV) { return delegate().hasEdgeConnecting(nodeV, nodeU); // transpose } }
@Override public int inDegree(N node) { return delegate().outDegree(node); // transpose }
@Override public int outDegree(N node) { return delegate().inDegree(node); // transpose }
@Override public Set<N> predecessors(N node) { return delegate().successors(node); // transpose }
@Override public int inDegree(N node) { return delegate().outDegree(node); // transpose }
@Override public Set<N> successors(N node) { return delegate().predecessors(node); // transpose }
/** * Returns a view of {@code graph} with the direction (if any) of every edge reversed. All other * properties remain intact, and further updates to {@code graph} will be reflected in the view. */ public static <N> Graph<N> transpose(Graph<N> graph) { if (!graph.isDirected()) { return graph; // the transpose of an undirected graph is an identical graph } if (graph instanceof TransposedGraph) { return ((TransposedGraph<N>) graph).graph; } return new TransposedGraph<N>(graph); }
@Override public boolean hasEdgeConnecting(N nodeU, N nodeV) { return delegate().hasEdgeConnecting(nodeV, nodeU); // transpose } }
@Override public int inDegree(N node) { return delegate().outDegree(node); // transpose }
@Override public Set<N> predecessors(N node) { return delegate().successors(node); // transpose }