public ArcIterator arcIterator() { return digraph.arcIterator(); } public ArcIterator outgoingIterator(Object vertex) {
public ArcIterator incomingIterator(Object vertex) { return digraph.incomingIterator(vertex); } }
public ArcIterator outgoingIterator(Object vertex) { return digraph.outgoingIterator(vertex); } public ArcIterator incomingIterator(Object vertex) {
public static Digraph merge(Digraph destination,DigraphIteration graphToMerge) { for (Iterator i = graphToMerge.vertexIterator(); i.hasNext();) { destination.addVertex(i.next()); } for (ArcIterator i = graphToMerge.arcIterator(); i.hasNext();) { Object arc = i.next(); Object origin = i.getOrigin(); Object dst = i.getDestination(); destination.putArc(origin, dst, arc); } return destination; }
public Object next() { Object currentVertex = queue.remove(); ArcIterator i = factory.outgoingIterator(currentVertex); Object origin = i.getOrigin(); while (i.hasNext()) { i.next(); Object dst = i.getDestination(); if (seen.add(dst)) queue.add(dst); } i = factory.incomingIterator(currentVertex); while (i.hasNext()) { i.next(); Object org = i.getOrigin(); if (seen.add(org)) queue.add(org); } return origin; }
Set seen = new HashSet(); List cycles = new ArrayList(); Iterator vertexIterator = graph.vertexIterator(); Object vertex = vertexIterator.next(); if (seen.add(vertex)) { stack.push(graph.outgoingIterator(vertex)); path.push(vertex); break; if (index < 0) { seen.add(dst); stack.push(graph.outgoingIterator(dst)); path.push(dst); subtreeIsTraversed = false;
public Iterator vertexIterator() { return wrappedIteration.vertexIterator(); } public ArcIterator arcIterator() {
public static Digraph transform(Digraph result, DigraphIteration source, Transformer vertexTransform, Transformer arcTransform) { for (Iterator i = new TransformIterator(source.vertexIterator(), vertexTransform); i.hasNext();) { result.addVertex(i.next()); } for (ArcIterator i = new TransformArcIterator(source.arcIterator(), vertexTransform, arcTransform); i.hasNext();) { Object arc = i.next(); Object origin = i.getOrigin(); Object dst = i.getDestination(); result.putArc(origin, dst, arc); } return result; }
public Iterator vertexIterator() { return digraph.vertexIterator(); } public ArcIterator arcIterator() {
public DepthFirstSearch(DigraphIteration factory, Object firstVertex) { this.factory = factory; this.firstVertex = firstVertex; stack.push(factory.outgoingIterator(firstVertex)); seen.add(firstVertex); }
public Iterator vertexIterator() { return IteratorUtils.filteredIterator(digraph.vertexIterator(), acceptVertex); } public ArcIterator arcIterator() {
public ArcIterator outgoingIterator(Object vertex) { return new ReversedArcIterator(wrappedIteration.incomingIterator(vertex)); } public ArcIterator incomingIterator(Object vertex) {
public ArcIterator arcIterator() { return new FilterArcIterator(digraph.arcIterator(), acceptVertex, acceptVertex, acceptArc); } public ArcIterator outgoingIterator(Object vertex) {
public ArcIterator incomingIterator(Object vertex) { return new ReversedArcIterator(wrappedIteration.outgoingIterator(vertex)); }
public StrongConnection(DigraphIteration digraph, CollectionFactory componentFactory) { this.digraph = digraph; this.componentFactory = componentFactory; filteredDigraph = new FilterIteration(digraph, new NotSeenPredicate(), GraphUtils.TRUE_PREDICATE); reverseDigraph = new FilterIteration(new ReversedIteration(digraph), reverseDFSFilter, GraphUtils.TRUE_PREDICATE); vertexIterator = filteredDigraph.vertexIterator(); runDirectDFS(); } public boolean hasNext() {
public ArcIterator incomingIterator(Object vertex) { if (!acceptVertex.evaluate(vertex)) return ArcIterator.EMPTY_ITERATOR; return new FilterArcIterator(digraph.incomingIterator(vertex), acceptVertex, GraphUtils.TRUE_PREDICATE, acceptArc); } }
public ArcIterator arcIterator() { return new ReversedArcIterator(wrappedIteration.arcIterator()); } public ArcIterator outgoingIterator(Object vertex) {
public void reset(Object newFirstVertex) { stack.clear(); seen.clear(); firstVertex = newFirstVertex; stack.push(factory.outgoingIterator(firstVertex)); seen.add(firstVertex); }
public ArcIterator outgoingIterator(Object vertex) { if (!acceptVertex.evaluate(vertex)) return ArcIterator.EMPTY_ITERATOR; return new FilterArcIterator(digraph.outgoingIterator(vertex), GraphUtils.TRUE_PREDICATE, acceptVertex, acceptArc); } public ArcIterator incomingIterator(Object vertex) {
for (Iterator j = origin.iterator(); j.hasNext();) { Object member = j.next(); for (ArcIterator k = digraph.outgoingIterator(member); k.hasNext();) { Object arc = k.next(); Object dst = k.getDestination();