Module org.jgrapht.core
Class BlossomVEdge.BlossomNodesIterator
java.lang.Object
org.jgrapht.alg.matching.blossom.v5.BlossomVEdge.BlossomNodesIterator
- All Implemented Interfaces:
Iterator<BlossomVNode>
- Enclosing class:
BlossomVEdge
public static class BlossomVEdge.BlossomNodesIterator
extends Object
implements Iterator<BlossomVNode>
An iterator which traverses all nodes in the blossom. It starts from the endpoints of the
(+,+) edge and goes up to the blossom root. These two paths to the blossom root are called
branches. The branch of the blossomFormingEdge.head[0] has direction 0, the one has direction
1.
Note: the nodes returned by this iterator aren't consecutive
Note: this iterator must return the blossom root in the first branch, i.e. when the direction is 0. This feature is needed to setup the blossomSibling references correctly
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BlossomVEdgeThe (+, +) edge of the blossomprivate BlossomVNodeHelper variable, is used to determine whether currentNode has been returned or notprivate intThe current direction of this iteratorprivate BlossomVNodeThe node this iterator is currently onprivate BlossomVNodeBlossom's root -
Constructor Summary
ConstructorsConstructorDescriptionBlossomNodesIterator(BlossomVNode root, BlossomVEdge blossomFormingEdge) Constructs a new BlossomNodeIterator for therootandblossomFormingEdge -
Method Summary
Modifier and TypeMethodDescriptionprivate BlossomVNodeadvance()Advances this iterator to the next node in the blossomintbooleanhasNext()next()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Iterator
forEachRemaining, remove
-
Field Details
-
root
Blossom's root -
currentNode
The node this iterator is currently on -
current
Helper variable, is used to determine whether currentNode has been returned or not -
currentDirection
private int currentDirectionThe current direction of this iterator -
blossomFormingEdge
The (+, +) edge of the blossom
-
-
Constructor Details
-
BlossomNodesIterator
Constructs a new BlossomNodeIterator for therootandblossomFormingEdge- Parameters:
root- the root of the blossom (the node which isn't matched to another node in the blossom)blossomFormingEdge- a (+, +) edge in the blossom
-
-
Method Details
-
hasNext
public boolean hasNext()- Specified by:
hasNextin interfaceIterator<BlossomVNode>
-
getCurrentDirection
public int getCurrentDirection()- Returns:
- the current direction of this iterator
-
next
- Specified by:
nextin interfaceIterator<BlossomVNode>
-
advance
Advances this iterator to the next node in the blossom- Returns:
- an unvisited node in the blossom
-