Depth-first traversal starting at the root.
(self)
| 64 | node = self.nodes[node_id] |
| 65 | return [self.nodes[c] for c in node.children_ids] |
| 66 | |
| 67 | def walk_dfs(self) -> Iterator[TreeNode]: |
| 68 | """Depth-first traversal starting at the root.""" |
| 69 | stack: list[UUID] = [self.root_node_id] |
| 70 | while stack: |
| 71 | node_id = stack.pop() |
| 72 | node = self.nodes[node_id] |
| 73 | yield node |
| 74 | # Reverse so children are visited in declared order. |
| 75 | stack.extend(reversed(node.children_ids)) |
| 76 | |
| 77 | def find_path(self, node_id: UUID) -> list[TreeNode]: |
no outgoing calls