The priority of nodes adding to the queue.
Returns nodes ids that should be added to the queue after visiting node
.
Returns nodes ids that should be added to the queue after visiting node
.
(Changed in version 2.8.0) collect
has changed. The previous behavior can be reproduced with toSeq
.
We mark nodes using 3 'colors': Unenqueued
, Enqueued
, Visited
.
We mark nodes using 3 'colors': Unenqueued
, Enqueued
, Visited
.
Initially every node is implicitly marked with Unenqueued
.
Node is marked Enqueued
, when we add it to the queue. We mark
it Visited
just before returning with iterator's next
function.
Depth of visit of a given node.
Depth of visit of a given node.
Direction of the walk.
Direction of the walk.
Enqueues nodes
added after from
node is visited (or None
when equeueing initial nodes).
Enqueues nodes
added after from
node is visited (or None
when equeueing initial nodes).
Seeks the next node that should be visited.
Seeks the next node that should be visited. We may need to skip some nodes, because it is possible that we add a node to the queue twice.
Takes already visited nodes from the queue. Does not take the next node from the queue (in order to allow hasNext checking).
Traverser only visits node Ids listed in some node's edges, and thus we know that node must exist, safe to assume graph.
Traverser only visits node Ids listed in some node's edges, and thus we know that node must exist, safe to assume graph.getNodeById return non-None value
Graph to be traversed.
Graph to be traversed.
Nodes to start the traversal from.
Nodes to start the traversal from.
If the queue is longer than the number of nodes that can be visited due to
maxSteps
bound, cuts the list of nodes that are to be added to the queue
in order not to add too many of them.
If the queue is longer than the number of nodes that can be visited due to
maxSteps
bound, cuts the list of nodes that are to be added to the queue
in order not to add too many of them.
Assumes that all nodes in the queue are being visited.
The priority of nodes adding to the queue.
The priority of nodes adding to the queue.
Number of nodes ever enqueued in the queue
.
Number of nodes ever enqueued in the queue
.
Optional counter of previous nodes to a given node.
Optional counter of previous nodes to a given node.
Performs action needed when visiting a node.
Performs action needed when visiting a node.
Queue that stores nodes to be visited next.
Queue that stores nodes to be visited next.
Set to true to deque a node from the queue before processing.
Set to true to deque a node from the queue before processing.
Checks if the node of a given color should be enqueued.
Checks if the node of a given color should be enqueued.
Action performed when visiting node node
(before iteratur retuns node
).
Action performed when visiting node node
(before iteratur retuns node
).
Should be implemented in subclass.
(Since version 2.10.0) use fold instead
A trait to be mixed in to the DepthFirstTraverser that keeps track of visiting distance from
homeNodeIds
.Note that DepthTracker for the DFS case returns the depth of first seeing a particular node. It does not have to be the same as the depth at which the node is visited.