Depth of visit of a given node.
Direction of the walk.
Graph to be traversed.
Nodes to start the traversal from.
The priority of nodes adding to the queue.
Checks if the node of a given color should be enqueued.
The priority of nodes adding to the queue.
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.
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).
Finds in the queue the node that will be visited next.
Finds in the queue the node that will be visited next.
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
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.
Options to limit traverser walk.
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.
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.
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
General schema for some Traversers (like BFS, DFS).
QueueBasedTraverser
keeps nodes to visit next in a queue. It iteratively visits nodes from the front of the queue in order based on the type of traversal and optionally adds new nodes to the queue.