visitDepth method
Depth-first search (DFS)
Implementation
@override
void visitDepth(VisitCallback visit, {Node? startNode}) {
final visited = <Node, bool>{};
final stack = <Node>[];
stack.add(startNode ?? root);
while (stack.isNotEmpty) {
final node = stack.removeLast();
if (visited[node] != true) {
visited[node] = true;
final visitResult = visit(node);
if (visitResult == VisitResult.breakVisit) {
break;
}
for (final child in _edges[node] ?? {}) {
if (visited[child] != true) {
stack.add(child);
}
}
}
}
}